PostgreSQL 遊標指定特定列的值賦值給某個變數
阿新 • • 發佈:2020-10-08
從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