相关疑难解决方法(0)

如何修复已弃用的oracle.sql.ArrayDescriptor,oracle.sql.STRUCT和oracle.sql.StructDescriptor

我使用下面的JDBC代码来调用一个带有Array输入的Oracle存储过程.

但是以下三个类已被弃用.如何更换?

import oracle.sql.ArrayDescriptor;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
Run Code Online (Sandbox Code Playgroud)

Java代码

        Object[] reportArray = new Object[3]; 
        STRUCT[] struct = new STRUCT[reports.size()];

        ArrayDescriptor arrayDescriptor = new ArrayDescriptor(new SQLName("T_REPORT_TABLE", (OracleConnection) connection), connection);
        StructDescriptor structDescriptor = StructDescriptor.createDescriptor("R_REPORT_OBJECT", connection);

        int arrayIndex = 0;
        for (Report data : reports) {
            reportArray[0] = data.getXXX();
            reportArray[1] = data.getYYY();
            reportArray[2] = data.getZZZ();

            struct[arrayIndex++] = new STRUCT(structDescriptor, connection, reportArray);
        }

        oracle.sql.ARRAY reportsArray = new oracle.sql.ARRAY(arrayDescriptor, connection, struct);
        callableStatement.setArray("T_REPORT_IN", reportsArray);

        callableStatement.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

java oracle stored-procedures deprecated

7
推荐指数
2
解决办法
2万
查看次数

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

这个问题与我的原始问题有关如何将数组从Java返回到PL/SQL?,但更具体.

我一直在阅读Oracle数据库JDBC开发人员指南

但我仍然无法编写最小代码,我可以使用它来创建ARRAY

ARRAY array = oracle.jdbc.OracleConnection.createARRAY(sql_type_name, elements);
Run Code Online (Sandbox Code Playgroud)

按照创建ARRAY对象中的说明进行操作.

我正在使用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"
Run Code Online (Sandbox Code Playgroud)

失败:

Errors for JAVA SOURCE "so20j1":

LINE/COL ERROR
-------- ----------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc oracle11gr2

6
推荐指数
1
解决办法
5万
查看次数

标签 统计

java ×2

oracle ×2

deprecated ×1

jdbc ×1

oracle11gr2 ×1

stored-procedures ×1