我在postgres中有一个存储函数:
CREATE FUNCTION return_curs() RETURNS refcursor AS $$
BEGIN
OPEN cursor_x FOR SELECT col FROM table_y;
RETURN cursor_x;
END; $$
然后在Python中我想调用过程来逐行获取returnung游标,以便使用psycopg2进行exapmle。 有没有办法执行此操作?谢谢。
答案 0 :(得分:3)
让psycopg2
创建server side cursor创作just by naming it更容易:
cursor = conn.cursor(name='cursor_x')
query = "select * from t"
cursor.execute(query)
for row in cursor:
print row
要使用返回游标功能,请照常执行:
cur = conn.cursor()
cur.callproc('return_curs')
然后使用命名游标捕获返回的游标:
named_cursor = conn.cursor(name='cursor_x')
for row in named_cursor:
print row