oracle如何解析java。sql。SQLException:无法构造描述符:TYPECODE\u VARCHAR2无法解决类型错误?
我们一直在尝试调用一个oracle存储过程,该过程包含8个参数,第8个参数是我们需要传递的数组。下面是代码段,它抛出了一个错误。我不确定将什么作为参数1传递给createDescriptor方法,因为无论我传递什么,它都会给出相同的错误。我已经从字段继承部分中获取了值,从下面的链接(非常感谢任何帮助)https://docs.oracle.com/cd/E16338_01/appdev.112/e13995/oracle/sql/ArrayDescriptor.html
java.sql.SQLException: Fail to construct descriptor: Unable to resolve java.sql.SQLException: Fail to construct descriptor:TYPECODE_VARCHAR2
代码:
structDescriptor = StructDescriptor.createDescriptor("TYPECODE_VARCHAR2", oracleConnection.getMetaData().getConnection());
arrayDescriptor = ArrayDescriptor.createDescriptor("TYPECODE_VARCHAR2", oracleConnection.getMetaData().getConnection());
ARRAY arr = new ARRAY(arrayDescriptor, oracleConnection.getMetaData().getConnection(), accountArray);
try {
//Array array = oracleConnection.createARRAY("OBJECT", new Object[] { "176354516912167301", "177254516082228201" });
OracleCallableStatement cstmt = (OracleCallableStatement) oracleConnection.prepareCall("{call COPY_FUNCTIONALITY.COPY_ADDRESS(?,?,?,?,?,?,?,?)}");
cstmt.setString(1, "ABCD");
cstmt.setString(2, "PASZKAL");
cstmt.setString(3, "624954458340565301");
cstmt.setString(4, "ALL");
cstmt.setString(5, "RECURRING_ENTERED");
cstmt.setBoolean(6, false);
cstmt.setBoolean(7, false);
cstmt.setArray(8, arr);
//cstmt.setArray(8, array_to_pass);
ResultSet rs = cstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
共 (0) 个答案