如何创建oracle.sql.ARRAY对象? [英] How to create an oracle.sql.ARRAY object?
问题描述
这个问题与我的原始问题如何将数组从Java返回到PL / SQL?有关,但是更多具体。
This question is related to my original issue How to return an array from Java to PL/SQL ?, but is a more specific.
我一直在阅读 Oracle数据库JDBC开发人员指南和
- 创建ARRAY对象
- < a href =http://download.oracle.com/docs/cd/E11882_01/java.112/e16548/ssid.htm =nofollow noreferrer>服务器端内部驱动程序
- oracle .jdbc.OracleConnection
- oracle.jdbc.OracleDriver
- Creating ARRAY objects
- Server-Side Internal Driver
- oracle.jdbc.OracleConnection
- oracle.jdbc.OracleDriver
但我仍然无法编写最小代码,我可以使用它来创建ARRAY
but I still fail to write a minimum code where I can create ARRAY using
ARRAY array = oracle.jdbc.OracleConnection.createARRAY(sql_type_name, elements);
我正在使用Oracle数据库JVM。
I'm using Oracle Database JVM.
我试过以下内容:
示例1
create or replace type widgets_t is table of varchar2(32767);
/
create or replace and compile java source named "so20j1" as
public class so20j1 {
public void f1() {
String[] elements = new String[]{"foo", "bar", "zoo"};
oracle.sql.ARRAY widgets =
oracle.jdbc.OracleConnection.createARRAY("widgets_t", elements);
}
};
/
show errors java source "so20j1"
失败:
Errors for JAVA SOURCE "so20j1":
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 so20j1:4: non-static method
createARRAY(java.lang.String,java.lang.Object) cannot be
referenced from a static context
0/0 1 error
0/0 ^
0/0 oracle.sql.ARRAY widgets =
oracle.jdbc.OracleConnection.createARRAY("widgets_t", elements);
示例2
create or replace type widgets_t is table of varchar2(32767);
/
create or replace and compile java source named "so20j2" as
public class so20j2 {
public void f1() {
String[] elements = new String[]{"foo", "bar", "zoo"};
oracle.jdbc.OracleDriver ora = new oracle.jdbc.OracleDriver();
java.sql.Connection conn = ora.defaultConnection();
oracle.sql.ARRAY widgets = conn.createARRAY("widgets_t", elements);
}
};
/
show errors java source "so20j2"
失败:
Errors for JAVA SOURCE "so20j2":
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 so20j2:6: cannot find symbol
0/0 symbol : method createARRAY(java.lang.String,java.lang.String[])
0/0 1 error
0/0 oracle.sql.ARRAY widgets = conn.createARRAY("widgets_t",
elements);
0/0 ^
0/0 location: interface java.sql.Connection
免责声明:我还不是Java程序员。
Disclaimer: I'm not a Java programmer (yet).
推荐答案
你在右边使用#2跟踪,但无法从类型为java.sql.Connection的连接创建oracle数组。必须是OracleConnection才能使用这些方法。
You're on the right track with #2, but you can't create an oracle Array from a connection of type java.sql.Connection. It has to be an OracleConnection to be able to use those methods.
oracle.jdbc.OracleDriver ora = new oracle.jdbc.OracleDriver();
java.sql.Connection conn = ora.defaultConnection();
OracleConnection oraConn = conn.unwrap(OracleConnection.class);
oracle.sql.ARRAY widgets = oraConn.createARRAY("widgets_t", elements);
这篇关于如何创建oracle.sql.ARRAY对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!