java – 如何使用JDBC / Spring调用Oracle存储过程,其中一些参数类型是用户定义的?

我正在尝试从我的Java程序中调用Oracle存储过程.我正在使用JDBC和Spring的StoredProcedure.一些参数是用户定义的类型,我需要知道如何传递它们.

特别是我应该在参数映射中指定哪种类型(即java.sql.Types.*中的哪一个)?我应该使用什么java类型?问题类型定义如下:

type MyDoubles as varray(50000) of double precision
type MyStrings as varray(50000) of varchar2(2000)

解决方法:

Google中的第一个命中似乎展示了如何绑定VARRAY:http://www.devx.com/tips/Tip/22034类型的参数.本文档中的示例使用预准备语句,但对于存储过程,它应该工作相同.

这是一个显示基本概念的摘录:

String arrayElements[] = { "Test3", "Test4" };
PreparedStatement ps =
    conn.prepareStatement ("insert into sample_varray_table values (?)");

ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRING_VARRAY", conn);
ARRAY newArray = new ARRAY(desc, conn, arrayElements);
((OraclePreparedStatement)ps).setARRAY (1, newArray);

ps.execute ();

这里要澄清一些FQDN:

> oracle.sql.ArrayDescriptor
> oracle.sql.ARRAY
> oracle.jdbc.OraclePreparedStatement

相关文章

连接数据库的方式:第一种方式:ODBC:开放数据库连接是微软...
JDBCRequest 使用VariableNamesmysql:数据库连接池对象var...
 1.JDBCDBC(JavaDataBaseConnectivity):Java数据库连接技术...
1.需要jar包的支持:java.sqljavax.sqlmysql-conneter-java....
1.简介Activiti是一个业务流程管理(BPM)框架,它是覆盖了业务...
1.JDBC体系系统一组规范:接口JDBC接口(API)包括两个层次:...