无法使用sqlalchemy调用存储过程?

问题描述 投票:0回答:2
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.callproc('transfer', [1, 2, 1000])# fetch result parameters
results = list(cursor.fetchall())
cursor.close()
connection.commit()
connection.close()

我收到此错误:

回溯(最近一次调用最后一次): 文件“D:\z_data\PYTHON\oops\sql_statements.py”,第 66 行,位于 光标.callproc('传输',[1,2,1000]) psycopg2.errors.WrongObjectType:传输(整数,整数,整数)是一个过程 第 1 行:从传输中选择 *(1,2,1000) ^ 提示:要调用过程,请使用 CALL。

【0.4秒完成】

python postgresql sqlalchemy psycopg2
2个回答
0
投票

来自

https://www.psycopg.org/docs/cursor.html#cursor.callproc

注意:

callproc()
只能与 PostgreSQL functions 一起使用,不能与 PostgreSQL 11 中引入的 procedures 一起使用,后者需要
CALL
语句才能运行。请使用普通的
execute()
来运行它们。


0
投票

对于其他人来说,我在尝试运行存储过程时遇到了问题..现在看起来很基本,但请确保您在最后提交连接。

© www.soinside.com 2019 - 2024. All rights reserved.