postgresql之儲存過程

2021-09-13 08:31:27 字數 1183 閱讀 9014

特性

儲存過程舉例

1、引數列表只包含函式輸入引數,不包含輸出引數

儲存過程定義:

create or replace function add(a integer, b numeric)

returns numeric

as $$

select a+b;

$$ language sql;

呼叫方法:

select add(1,3);

select * from add(1,3);

結果:

2、同時包含輸入引數和輸出引數

儲存過程定義:

create or replace function plus_and_minus

(in a integer, in b numeric, out c numeric, out d numeric)

as $$

select a+b, a-b;

$$ language sql;

呼叫方法:

select plus_and_minus(6,5);
select * from  plus_and_minus(6,5);
結果:

3、在函式定義中,可以寫多個sql語句,不一定是select語句,可以是其它任意合法的sql。但最後一條sql必須是select語句,並且該sql的結果將作為該函式的輸出結果。

注意點

1、儲存過程(funciton)變數可以直接用 || 拼接。

2、儲存過程的物件不可以直接用變數,要用 quote_ident(objvar)

3、$1 $2是 function 引數的順序,如1中的 $1 $2交換,using 後面的不換 結果 :select max(mytablename) from myfeildname

4、注意:sql語句中的大寫全部會變成小寫,要想大寫存大,必須要用雙引號。

參考:

Postgresql儲存過程

pg的儲存過程與oracle的稍微有點不一樣,它的結構是這樣的 語法 create or replace function function name arg1,arg2.returns return type as body declare 變數宣告 begin 函式體end body langu...

PostgreSQL儲存過程(函式)

create or replace function function name 引數逗號隔開 returns 返回值型別 as body declare 宣告變數 變數名 變數型別 變數值 例如 name char 20 su begin 函式體 包括dml語句 特別注意 如果有返回值,要省略最後...

postgresql儲存過程輸出引數

postgresql不區分儲存過程和函式,即這兩個是乙個東西。儲存過程通常用於比較複雜的操作中。建立儲存過程時 create or replace function 儲存過程名稱這個or replace是如果存在同名的儲存過程則替換,如果是第一次建立這個儲存過程的話可以不加or replace 儲存...