我正在尝试从我的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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。