一、用数组作为参数 传入到 存储过程
与ORACLE数组对应的 只能是 ORACLE.SQL.ARRAY 对象,而构造这个对象 需要 本地数据库连接JAVA.SQL.Connection 和 ORACLE.SQL.ArrayDescription 对象。
在Spring架构下,要获取到 本地Connection,找到资料基本是关于 ParameterMapper接口,但是实验了后才知道,这个方案还是需要Connection作为参数,继续寻找。
后来在《Spring 让 LOB 数据操作变得简单易行 》 这篇文章中找到了方法。 需要在Spring的配置文件中添加相应的Bean,如下:
STR_VARLIST 是在Oracle数据库中定义的动态数组。
二、 存储过程的动态数组 返回到 java程序处理
关键点是 用ORACLE.SQL.ARRAY 类型来接收。用例子来说话:
【参考】
1. http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html