39.3.1. 宣告函式引數
傳遞給函式的引數被用 $1、$2等依次類推的標誌符命名。作為可選項,為了提高可讀性,可以為$n 引數名稱定義別名。此後,既可以用數字標誌符也可以用別名來指代引數值。
有兩種方式來建立別名。推薦使用的方法是在create function命令你個中給引數乙個名字,例如:
createfunction sales_tax(subtotal real) returns
real
as$$
begin
return subtotal *
0.06
;end
;$$ language plpgsql;
另外一種方法,在postgresql8.0之前,是唯一的方法,它顯式宣告乙個別名。採用如下的宣告語法:
name alias for $n;
上述例子採用這種方式後變為:
createfunction sales_tax(real) returns
real
as$$
declare
subtotal alias
for $1
;begin
return subtotal *
0.06
;end
;$$ language plpgsql;
請注意:上述兩個例子並不是完全相同。在第乙個例子中, subtotal 可以通過 sales_tax.subtotal 來參照。但是在第二個例子中不能如此。 (如果在內部塊中給乙個標籤,倒是可以用 標籤.subtotal方式來指定它)
createfunction 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語句必須被資料庫伺服器逐條地執行。這意味著你的客戶應用必須向資料庫傳送每一條查詢,等待它被處理,接收並處理結果,進行一些計算,然後再依次類推送出更多的查詢。所有這些導致程序間通訊,如果你的...