Я пытаюсь получить данные из postgres рефкурсора в python, у меня есть следующий код:
Postgres Функция
create or replace FUNCTION get_users(p_cursor REFCURSOR) returns REFCURSOR
AS $procedure$
BEGIN
open p_cursor FOR
select * from users;
RETURN p_cursor;
END; $procedure$
LANGUAGE plpgsql;
Python часть
@classmethod
def load_all(cls):
with ConnectionFromPool() as connection:
with connection.cursor() as cursor:
cursor.execute('select * from get_users(%s)', ('cursor',))
user_data = cursor.fetchall()
return user_data
Запрос работает, но я не могу понять, почему я получаю [('cursor',)]
в результате.
Может кто-нибудь помочь мне с этим? Я действительно не мог найти какой-либо материал, который помог бы мне решить эту проблему ...
РЕДАКТИРОВАТЬ: Если я использую RETURNS TABLE
на postgres, это работает, но мне нужно быть в состоянии создать запрос со строками и сравнениями переменных.