0
에서 설정 I이 PL/pgSQL의 기능이 : 나는 파이썬의 psycopg2 라이브러리와이를 사용하는 것을 시도하고있다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;
합니다. 난 그냥 일반 쿼리를 할 경우
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
Theres는 분명 내 PL/pgSQL의 기능에 문제가, 그러나 나는 그것을 올바르게 얻는 것처럼 보이지 않습니다.
는 또한RETURN result_set;
대신 내 plpgsql 기능의 10 라인에서 단지
RETURN
의 사용했지만, 포스트 그레스에서 오류가 발생했습니다.
감사합니다. 이전에 RETURN QUERY 문을 본 기억이 있지만 그 것이 옳다고 생각하지 않았습니다. 그 트릭을 했어, 정말 고마워! –