【发布时间】:2020-11-19 10:42:09
【问题描述】:
我有一个预言机程序,它应该返回一大块 json。
程序有4个参数
输入是一个ID值 输出json CLOB 输出一些json格式的信息CLOB 成功或失败输出 varchar2
所以在我的代码中我做了以下只是为了测试我是否可以成功调用并返回它
ConnectionString = 'someconnection.connection'
con = cx_Oracle.connect(ConnectionString)
cur = con.cursor()
ID = '51858645'
json_out = cur.var(cx_Oracle.CLOB)
message = cur.var(cx_Oracle.CLOB)
status = cur.var(cx_Oracle.STRING)
oracle_return = cur.callproc('project.getsomejson',[ID,json_out,message,status])
但是,它失败并返回
PLS-00306: wrong number or types of arguments in call to 'getsomejson'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
这是过程定义
procedure callOracle(json_in clob,json_out out clob,message out clob,status out varchar2)
这是调用 oracle 12c db 我真的不熟悉python中的调用过程。通常我用存储的类型调用func并得到一个返回
【问题讨论】:
-
给我们实际的 PL/SQL 过程定义,这样我们就不必猜测不匹配可能是什么。还要给我们 cx_Oracle 版本以及 Oracle 客户端库和 Oracle DB 版本,因为行为在整个版本中都发生了变化。
-
@ChristopherJones 添加在底部
标签: python python-2.7 procedure cx-oracle