Oracle 在JDBC中调用存储过程时,是否可以将自定义对象的表作为OUT参数返回

Oracle 在JDBC中调用存储过程时,是否可以将自定义对象的表作为OUT参数返回,oracle,jdbc,oracle11g,spring-jdbc,ora-17004,Oracle,Jdbc,Oracle11g,Spring Jdbc,Ora 17004,在Oracle 11g中,我有这样一个存储过程: PROCEDURE test_params (o_message_tbl OUT core.message_tbl); 在哪里 create or replace TYPE message_tbl AS TABLE OF core.message_obj; create or replace TYPE message_obj AS OBJECT (code NUMBER (10, 0),

在Oracle 11g中,我有这样一个存储过程:

PROCEDURE test_params (o_message_tbl OUT core.message_tbl);
在哪里

create or replace TYPE message_tbl AS TABLE OF core.message_obj;
create or replace TYPE message_obj AS OBJECT
              (code NUMBER (10, 0),
               type_code VARCHAR2 (10 CHAR),
               text VARCHAR2 (1000 CHAR)
              )

我使用Spring的SimpleJDBCall来调用它,但它给了我“Invalid column type”异常。可以调用这样的过程并在JDBC中读取结果吗?如果没有,除了返回光标,还有什么其他选项可用?

Spring和
SimpleJdbcCall
不要做任何花哨的事情,它们只是使JDBC更易于使用

这里有一个如何在JDBC中使用
TABLE
返回类型的示例:


您应该能够相当容易地将其适应于
SimpleJdbcCall

您使用的是CallableStatement吗?