PL pgSQL學習筆記之六

2021-09-06 10:53:39 字數 1364 閱讀 3630

39.3.1. 宣告函式引數

傳遞給函式的引數被用 $1、$2等依次類推的標誌符命名。作為可選項,為了提高可讀性,可以為$n 引數名稱定義別名。此後,既可以用數字標誌符也可以用別名來指代引數值。

有兩種方式來建立別名。推薦使用的方法是在create function命令你個中給引數乙個名字,例如:

create

function sales_tax(subtotal real) returns

real

as$$

begin

return subtotal *

0.06

;end

;$$ language plpgsql;

另外一種方法,在postgresql8.0之前,是唯一的方法,它顯式宣告乙個別名。採用如下的宣告語法:

name alias for $n;

上述例子採用這種方式後變為:

create

function sales_tax(real) returns

real

as$$

declare

subtotal alias

for $1

;begin

return subtotal *

0.06

;end

;$$ language plpgsql;

請注意:上述兩個例子並不是完全相同。在第乙個例子中, subtotal 可以通過 sales_tax.subtotal 來參照。但是在第二個例子中不能如此。 (如果在內部塊中給乙個標籤,倒是可以用 標籤.subtotal方式來指定它)

create

function instr(varchar, integer) returns

integer

as$$

declare

v_string alias

for $1

;

index alias for $2

;begin

--some computations using v_string and index here

end;

$$ language plpgsql;

create

function concat_selected_fields(in_t sometablename) returns

text

as$$

begin

return in_t.f1 || in_t.f3 || in_t.f5 ||

in_t.f7;

end;

$$ language plpgsql;

PL pgSQL學習筆記之十

39.3.3.型別拷貝 variable type type提供了變數或者表列的資料型別。你可以用這個來宣告將持有這些資料庫值得變數。例如,假定在你的users表中你有一列,名稱為 user id。為了定義乙個和users.user id擁有同樣資料型別的資料型別,你可以寫 user id user...

PL pgSQL學習筆記之五

39.3.宣告 塊中使用的所有的變數必須在塊的宣告節中進行宣告。唯一的例外是,子乙個for迴圈中,在乙個整數範圍內輪詢的迴圈變數被自動認為是整型變數,而只for迴圈中,輪詢乙個游標的變數被自動宣告為記錄變數。pl pgsql 變數可以是任何sql資料型別,如integer,varchar,還有cha...

PL pgSQL學習筆記之二

sql是 postgresql和其他大多數關係型資料庫作為查詢語言而使用的語言。它可移植,並容易學習。但是sql語句必須被資料庫伺服器逐條地執行。這意味著你的客戶應用必須向資料庫傳送每一條查詢,等待它被處理,接收並處理結果,進行一些計算,然後再依次類推送出更多的查詢。所有這些導致程序間通訊,如果你的...