在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的SimpleJdbcCall来调用它,但它给了我“无效的列类型”异常。是否可以调用此类过程并在JDBC中读取结果?如果不是,除了返回游标之外还有哪些其他选项?
答案 0 :(得分:2)
Spring和SimpleJdbcCall
没有做任何花哨的事情,只是让JDBC更容易使用。
这里有一个如何在JDBC中使用TABLE
返回类型的示例:
http://www.velocityreviews.com/forums/t138431-access-oracle-objects-via-plsql-from-jdbc.html
您应该能够轻松地将其调整为SimpleJdbcCall
。