1. 程式人生 > 實用技巧 >PostgreSQL 遊標指定特定列的值賦值給某個變數

PostgreSQL 遊標指定特定列的值賦值給某個變數

從Fetch cursor_var into var1,var2;

它是把查詢出來的列按順序賦值過去的,每一個Fetch是一行,每一個into是一列,var1,var2分別對應資料行的第一列和第二列,不需要定義變數的名稱和列名一致。

-- 如果存在該儲存過程就刪除
drop function if exists function_test3();
-- replace之前先呼叫了drop是因為如果返回值不同是不能直接替換的
create or replace function function_test3() returns void as
-- 標記開始和起始位置,用$$和$$也可以,主要是查詢儲存過程的結果是用的$BODY$
$BODY$ declare project_id varchar(24); declare project_id1 varchar(24); declare emprest CURSOR for select * from saas_bi_basic_project_record; num int; begin select count(*) from saas_bi_basic_project_record into num; open emprest; LOOP FETCH emprest into project_id,project_id1; raise notice
'%', project_id1; num = num - 1; if num = 0 then exit; end if; END LOOP; close emprest; END $BODY$ LANGUAGE plpgsql; -- 呼叫儲存過程 select function_test3();
-- 呼叫儲存過程
select function_test3()
> 注意:  ab123
> 注意:  sdf
> OK
> 時間: 0.001s