我有一個返回類型爲TABLE的函數,我想從我的表中獲取某些列到該函數的RETURN TABLE類型中。當我執行該函數時,它不給出任何錯誤,但不返回任何記錄,儘管它應該根據我所擁有的條件返回一些記錄。 下面是我寫的代碼,有人可以讓我知道我哪裏出錯了嗎?PostgreSQL中函數的返回表類型
CREATE OR REPLACE FUNCTION ccdb.fn_email_details_auto()
RETURNS TABLE (code integer, area smallint, action smallint, flag smallint, ucount integer, view_cnt integer) AS
$BODY$
DECLARE
sec_col refcursor;
cnt integer;
sec_code ccdb.update_qtable%ROWTYPE;
BEGIN
SELECT COUNT(DISTINCT section_code)
INTO cnt
FROM ccdb.update_qtable
WHERE entry_time::date = now()::date - interval '1 day';
OPEN sec_col FOR
SELECT * FROM ccdb.update_qtable WHERE entry_time::date = now()::date - interval '1 day';
FOR i IN 1..cnt
LOOP
FETCH sec_col INTO sec_code;
PERFORM section_code, ddu_area, ddu_action, status_flag, ccdb_ucount, ccdb_view_cnt
FROM ccdb.update_qtable
WHERE entry_time::date = now()::date - interval '1 day' AND section_code = sec_code.section_code
ORDER BY ddu_area, ddu_action;
END LOOP;
CLOSE sec_col;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
您將需要提供與此相對應的表格定義和數據,否則我們需要精神力量來幫助。另外,爲什麼你使用顯式遊標,而不是'FOR ... SELECT ...'? –