0
設置我有這樣的PL/pgSQL函數:PL/PGSQL功能,在訪問返回的結果遇到麻煩psycopg2
CREATE OR REPLACE FUNCTION get_result(id integer) RETURNS SETOF my_table AS $
DECLARE
result_set my_table%ROWTYPE;
BEGIN
IF id=0 THEN
SELECT INTO result_set my_table_id, my_table_value FROM my_table;
ELSE
SELECT INTO result_set my_table_id, my_table_value FROM my_table WHERE my_table_id=id;
END IF;
RETURN;
END;
$ LANGUAGE plpgsql;
我試圖用Python的psycopg2庫使用。下面是Python代碼:
import psycopg2 as pg
conn = pg.connect(host='myhost', database='mydatabase', user='user', password='passwd')
cur = conn.cursor()
return cur.execute("SELECT * FROM get_result(0);") # returns NoneType
但是,如果我只是做了常規查詢,我得到正確的行集回:
...
return cur.execute("SELECT my_table_id, my_table_value FROM mytable;") # returns iterable result set
即使世界顯然有毛病我PL/pgSQL函數,但我似乎無法做到。
我也嘗試過使用的
RETURN result_set;
,而不是僅僅
RETURN
我PLPGSQL功能的10日線
,卻得到了來自Postgres的錯誤。
非常感謝,我記得之前看到了RETURN QUERY語句,但並不認爲它是正確的。儘管如此,謝謝! – 2010-04-19 01:20:33