首页 > 解决方案 > 如何在python中调用带参数的存储过程?

问题描述

我有一个定义了escalate的存储过程,它采用字符串参数clientid

我在 python 中使用 sqlalchemy 并使用 ORM。我创建了 db.session。

我不确定如何使用此会话调用存储过程。

任何人都可以指出我的解决方案?

我试过以下;但出现错误:

TypeError:get_bind() 得到了一个意外的关键字参数 'param'

代码:

from sqlalchemy import and_, func,text

db.session.execute(text("CALL escalate(:param)"), param=clientid)

标签: pythonsqlalchemyflask-sqlalchemy

解决方案


从文档中 session.execute需要一个超过 kwargs 的字典,这与你编写它时应该工作的连接对象不同。

db.session.execute(
    "CALL escalate(:param)",
    {'param': clientid}
)

推荐阅读