我想使用python运行一个DB2(IBM i)存储过程
我使用pyodbc成功地连接到了DB2。
我的脚本看起来像这样:
import json
import pyodbc
with open("config.json","r") as f:
CONFIG = json.load(f)
dsn = CONFIG["servername"]["dsn"]
schema= CONFIG["servername"]["schema"]
tbl= CONFIG["servername"]["tbl"]
sp = CONFIG["servername"]["sp"]
user = CONFIG["servername"]["user"]
pw = CONFIG["servername"]["pw"]
conn = pyodbc.connect(f"DSN={dsn};UID={user};PWD={pw}")
cursor = conn.cursor()
现在,当我尝试使用下面的脚本运行SP时:
test_query = f"""CALL MYLIB.MYSP()"""
cursor.execute(test_query)
--or something like this
--test_query = f"""CALL {schema}.{tbl}()"""
--cursor.execute(test_query)
我遇到了这个错误:错误:('HY 000','[HY 000] [IBM][iSeries Access ODBC驱动程序][DB2 UDB] SQL 0440-在MYLIB中找不到具有指定参数的例程MYSP。(-440)(SQLExecDirectW“)
你知道我做错了什么吗
注意:我的SP创建一个表。我使用以下命令从DBeaver执行此SP:调用MYLIB.MYSP();
1条答案
按热度按时间epfja78i1#
新手的错误。我通过使用创建SP时使用的正确凭据解决了该问题。