Я использую приведенный ниже код JDBC для вызова хранимой процедуры Oracle, которая принимает вход Array.Как исправить устаревший oracle.sql.ArrayDescriptor, oracle.sql.STRUCT и oracle.sql.StructDescriptor
Но нижеследующие три класса устарели. Как это заменить?
import oracle.sql.ArrayDescriptor;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
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();
Хорошо, это мило - так, как я должен получить экземпляр 'OracleConnection', когда я работаю против' DataSource' экземпляра, которые могут или не могут делать различные фантазии прокси/упаковка трюки? – demaniak