在Python中调用Oracle存储过程时出现错误“不支持dict类型的值”

2024-10-01 04:58:07 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用cx_Oracle调用Oracle存储过程时,我得到以下错误:dict not SUPPORED类型的Python值

我的代码如下:

try:
    cursor = connection.cursor()
    cursor.callproc("my_proc", [fname, hash, json])
    cursor.close()
    connection.commit()
finally:
    connection.close()

在我的存储过程中,我传递了两个字符串(Oracle中的varchar2)和在Oracle中以Clob形式传递的json数据

请注意,我对Python还不熟悉,并且仍在掌握它


Tags: 代码json类型close过程错误notconnection
1条回答
网友
1楼 · 发布于 2024-10-01 04:58:07

这似乎对我有用。如果你更新你的问题更详细,我们可能会发现你的问题

cursor = connection.cursor()
cursor.execute("""
               create or replace procedure my_proc (
                   p1 in varchar2,
                   p2 in varchar2,
                   p3 in clob,
                   p4 out varchar2
               ) as
               begin
                 p4 := p1 || p2 || p3;
               end;
               """)

hash = "abc"
fname = "def"
json = "ghi"
with connection.cursor() as cursor:
    myout = cursor.var(cx_Oracle.STRING)
    cursor.callproc("my_proc", [fname, hash, json, myout])
    print(myout.getvalue())

输出为:

defabcghi

相关问题 更多 >