我在postgres中创建了一个简单的函数,如下所示:
CREATE OR REPLACE FUNCTION test_django(p_a int, p_b int, out p_cursor refcursor, out p_int int)
RETURNS record AS
$BODY$
begin
p_cursor := 'test_cursor';
open p_cursor for
select id, name, des from test;
p_int := 100;
END
$BODY$
LANGUAGE plpgsql;
我想通过Django调用此函数并获取2个OUT参数。一个是光标,另一个是INTEGER;
是否可以预注册Java之类的参数?谢谢。
答案 0 :(得分:0)
我找到了解决方法。
>>> with transaction.atomic(), connection.cursor() as cur:
... cur.execute('''select test_django(1,2)''')
... a = cur.fetchone()
... a
... cur.execute('fetch all from test_cursor')
... cur.fetchall()
...
('(test_cursor,100)',)
[(2, 'aa', 'aaaaa'), (3, 'aabb', 'aaaaabbb')]
我可以很好地获取游标,但是INTEGER参数实际上位于String内,这太奇怪了...
有什么好办法解决这个问题吗?