0
的Postgres數據庫Postgres的SQL狀態:P0001錯誤運行功能時
如果我使用查詢SELECT sms.somefunc()運行下面功能;,得到錯誤SQL狀態:P0001。
我在這個函數中調用了另一個函數。
有人可以幫我解決這個問題嗎?我不知道爲什麼會發生這種錯誤。
在此先感謝。
--DROP FUNCTION SMS.somefunc();
CREATE FUNCTION SMS.somefunc() RETURNS void AS $BODY$
DECLARE
wk_rows INT :=0;
work_plan_id_val INT :=0;
DECLARE wp_rows INT DEFAULT 0;
BEGIN
DECLARE wk_plan_id CURSOR FOR
SELECT COUNT(work_plan_id) FROM sms.work_plan
WHERE class_general_id = 8 AND
subject_general_id = 18;
BEGIN
OPEN wk_plan_id;
FETCH wk_plan_id INTO wk_rows;
CLOSE wk_plan_id;
END;
DECLARE wp CURSOR FOR
SELECT work_plan_id FROM sms.work_plan
WHERE class_general_id = 8 AND
subject_general_id = 18; --442
BEGIN
OPEN wp;
IF wk_rows > 0 THEN
wp_rows = 0;
WHILE wp_rows < wk_rows LOOP
FETCH wp INTO work_plan_id_val;
RAISE NOTICE 'work_plan_id_val %', work_plan_id_val;
EXECUTE SMS.P_DELETE_X (work_plan_id_val,'admin');
RAISE EXCEPTION 'Something happen %', work_plan_id_val;
wp_rows = wp_rows + 1;
--DBMS_OUTPUT.PUT_LINE('TEST');
END LOOP;
END IF;
CLOSE wp;
END;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION SMS.somefunc()
OWNER TO postgres;
謝謝帕維爾。它現在工作很好。 – Parthiban