db2 从Python执行存储过程

w1e3prcc  于 12个月前  发布在  DB2
关注(0)|答案(1)|浏览(165)

我想使用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();

epfja78i

epfja78i1#

新手的错误。我通过使用创建SP时使用的正确凭据解决了该问题。

相关问题