【发布时间】:2012-05-22 23:19:35
【问题描述】:
我需要使用 PL/SQL 表类型的参数对过程进行 JDBC 调用。 我正在尝试使用结构对象。但我没有做一些正确的事情。 我得到错误: ORA-04043: 对象 "scott"."objListStruct" 不存在。
这里是sn-p的代码:
conn = Application.getDBConnection();
CallableStatement cStmt = null;
cStmt= conn.prepareCall("{call package1.procedure1"+"(?)}");
Struct objListStruct = conn.createStruct("objListStruct",
objNameArr.toArray());
cStmt.setObject(1, objListStruct,Types.STRUCT);
参数“?”对于此过程,类型为:
TYPE t_name IS TABLE OF TABLE1.name%TYPE
非常感谢您对这项工作的任何见解。 谢谢
【问题讨论】:
-
objNameArr 是一个 arrayList ,数据准备好进入。
-
在你的一个 cmets 中,你说“严格来说,类型应该是 TYPE t_name IS TABLE OF TABLE1.name%TYPE INDEX by BINARY_INTEGER”。这与您在此处给出的类型定义相冲突。哪个是对的? Oracle中的类型是用SQL还是PL/SQL定义的?
标签: java oracle jdbc plsql cursor