从SQLAlchemy调用存储过程

2 投票
1 回答
5226 浏览
提问于 2025-04-16 21:38

SQLAlchemy 中,调用存储在数据库里的程序(比如存储过程)最好的方法是什么?(包括设置参数、接收返回状态和输出变量)

我看到一些例子是用 execute() 来执行原始的数据库字符串,但这样可能会包含特定于数据库厂商的语法,对吧?

1 个回答

5

是的,你可以使用执行功能,并且它确实可以包含特定于供应商的语法。

你还应该考虑使用 outparam

来自 SQLAlchemy 文档

sqlalchemy.sql.expression.outparam(key, type_=None) 用于创建一个“输出”参数,以便在支持它的数据库中的函数(存储过程)中使用。

这个输出参数可以像普通的函数参数一样使用。通过 ResultProxy 对象的 out_parameters 属性,你可以获取“输出”的值,这个属性会返回一个包含值的字典。

这里有一些使用输出参数的例子: http://nullege.com/codes/search/sqlalchemy.sql.outparam

撰写回答