将数组传递给 oracle 过程
我想将两个数组从java发送到oracle存储过程。 第一个数组是字符串数组,第二个数组是字符数组 我该怎么做这个?
I want to send two arrays form java to oracle stored procedures.
The first Array is array of strings and the second is array of chars
how can I make this??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
下面是如何执行此操作的示例。
以下脚本在数据库中设置一个表、一个类型和一个存储过程。该过程采用数组类型的参数并将数组的每一行插入到表中:
然后,Java 代码演示将数组传递到此存储过程中:
如果运行 SQL 脚本,然后运行 Java 类,然后查询表
string
,您应该发现所有数据都已插入到表中。当您说“字符数组”时,我猜您指的是 Java
char
数组。如果我猜对了,那么我认为您最好将char
转换为String
,然后使用与上面相同的方法。Here's an example of how to do it.
The following script sets up a table, a type and a stored procedure in the database. The procedure takes a parameter of the array type and inserts each row of the array into the table:
The Java code then demonstrates passing an array into this stored procedure:
If you run the SQL script and then the Java class, and then query the table
strings
, you should find that all of the data has been inserted into the table.When you say 'an array of chars', I'm guessing that you mean an array of Java
char
s. If I've guessed right, then I think you'd be best off converting thechar
s toString
s and then using the same approach as above.看这里:
http://download.oracle.com/docs /cd/B19306_01/java.102/b14355/oraarr.htm#i1058512
这是我的简短示例:
1)在数据库上
2)在java中
似乎有效:输出说
Look here:
http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/oraarr.htm#i1058512
and here is my short example:
1) on database
2) in java
seems to work: output says
由于
ArrayDescriptor
自 12c 起已被弃用,因此不应再使用它。这是在 12c 中对我有用的代码片段:
Since
ArrayDescriptor
is deprecated since 12c, it should not be used anymore.Here's a code sniplet that worked for me in 12c:
正则表达式解决
Regex solve
PeudoCode 的实现方式与我相同。
希望有帮助。此顺序可能会根据要求和使用的 SQL 数据库类型而有所不同,但基础是相同的。
我从我的其他答案之一复制了这个答案。
使用简单的 jdbc 调用将数组作为输入参数传递给 Oracle 存储过程
PeudoCode for the same how I achieved.
Hope it helps. This sequence may vary as per requirement and type of sql database used, but base is same.
I have copied this answer from one of my other answers.
Pass array as input parameter to an oracle stored procedure using simple jdbc call
新方法是解开
OracleConnection
的包装,然后使用createOracleArray
。另请参阅:如何创建 oracle.sql.ARRAY对象?
The new approach is to unwrap the
OracleConnection
and then usecreateOracleArray
.Also see: How to create an oracle.sql.ARRAY object?
您可以使用 Oracle 类型将 Java 对象映射到 Oracle。此外,还有 Spring JDBC 实用程序。
You can use Oracle Types to map Java objects to Oracle. Also, there's Spring JDBC utilities.