gpt4 book ai didi

java - 如何创建 oracle.sql.ARRAY 对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:37 24 4
gpt4 key购买 nike

这个问题和我原来的问题有关How to return an array from Java to PL/SQL ? , 但更具体。

我一直在读Oracle Database JDBC Developer's Guide

但我仍然没有写出可以使用

创建 ARRAY 的最少代码
ARRAY array = oracle.jdbc.OracleConnection.createARRAY(sql_type_name, elements);

按照Creating ARRAY objects中的指示.

我正在使用 Oracle 数据库 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 程序员。

最佳答案

#2 的方向是正确的,但是您不能从 java.sql.Connection 类型的连接创建 oracle 数组。它必须是 OracleConnection 才能使用这些方法。

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);

关于java - 如何创建 oracle.sql.ARRAY 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com