С помощью функции pgsql SelRec(integer)
, как определено ниже:
-- select record
CREATE OR REPLACE FUNCTION SelRec(_sno integer)
RETURNS SETOF app_for_leave AS
$BODY$
BEGIN
RETURN QUERY
SELECT * FROM "app_for_leave" WHERE "sno"=_sno;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Я попытался вызвать эту функцию внутри своего кода Python и ожидал, что возвращаемый результат будет в виде объекта запроса, который, кроме того, мог бы получить индивидуальное значение внутриобъект запроса.
import psycopg2
connection_string = 'postgresql://postgres:111111@localhost:5432/myDB'
conn = psycopg2.connect(connection_string)
cursor = conn.cursor()
obj = cursor.execute("select * from SelRec(1)");
conn.commit()
print obj # None
Тем не менее, результат равен None
, как будто данные не сохраняются, но он существует, как показано ниже:
sno | eid | ename | sd | ed | sid | status
-----+-----+-------+------------+------------+-----+--------
1 | 101 | | 2013-04-04 | 2013-04-04 | 2 | f
Мне нужна obj
возвращает объект запроса, который я бы далее назвал DataSet = obj.first()
, и DataSet.status
, ect для каждого отдельного значения.
Есть какие-нибудь предложения, как мне этого добиться?Спасибо.