gpt4 book ai didi

stored-procedures - SQLAlchemy 从 postgresql 存储过程获取输出参数

转载 作者:行者123 更新时间:2023-12-04 04:42:19 25 4
gpt4 key购买 nike

我正在使用 Postgresql9.2 和 SQLAlchemy0.8 。我在数据库中有一个存储过程,它有很多输出参数,我希望它们通过点表示法使用。但到目前为止,我失败得很惨。下面是我的代码的样子。

显示我在做什么的示例如下。

CREATE OR REPLACE FUNCTION stored_proc_name(IN in_user_id bigint, IN in_amount bigint,
OUT pout_one bigint, OUT pout_two bigint )
RETURNS record AS
$BODY$
begin
select count(*) as AliasOne into pout_one from tabe_names where conditions;
select user_name as AliasTwo into pout_two from table_name where condition;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION stored_proc_name(bigint, bigint)
OWNER TO postgres;

我的代码片段如下:
#session object from sessionmaker
result_obj = session.execute(func.stored_proc_name(user_id, amount))
print result_obj.fetechall()
#The above print statement prints following on the console.
>> [('(1,100)',)]

显然,上面的结果获取字符串。我想要的是类似 result_obj.pout_one并在我的代码中使用它。

有没有办法实现它。一个有效的代码片段将不胜感激。

非常感谢!

最佳答案

你可以尝试这样的事情:

query = select([column('pout_one'), column('pout_two')], 
from_obj=[func.stored_proc_name(user_id, amount)])
session.execute(query)

其灵感来自 SQLAlchemy 列表,其中有人问了 similar question .这可能会产生所需的输出(我现在无法测试)。

关于stored-procedures - SQLAlchemy 从 postgresql 存储过程获取输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18712049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com