从SQLAlchemy调用存储过程
在 SQLAlchemy
中,调用存储在数据库里的程序(比如存储过程)最好的方法是什么?(包括设置参数、接收返回状态和输出变量)
我看到一些例子是用 execute()
来执行原始的数据库字符串,但这样可能会包含特定于数据库厂商的语法,对吧?
1 个回答
5
是的,你可以使用执行功能,并且它确实可以包含特定于供应商的语法。
你还应该考虑使用 outparam
。
来自 SQLAlchemy 文档:
sqlalchemy.sql.expression.outparam(key, type_=None)
用于创建一个“输出”参数,以便在支持它的数据库中的函数(存储过程)中使用。这个输出参数可以像普通的函数参数一样使用。通过 ResultProxy 对象的 out_parameters 属性,你可以获取“输出”的值,这个属性会返回一个包含值的字典。
这里有一些使用输出参数的例子: http://nullege.com/codes/search/sqlalchemy.sql.outparam