【发布时间】:2019-10-27 21:12:07
【问题描述】:
我在 oracle db 中使用数组并调用 CallableStatement 来执行存储过程。
这次我在数组中加入了blob类型:
create or replace type My_ARRAY AS object(
_ID NUMBER(10),
DOCUMNT blob)
在创建 ArrayDescriptor 并在 java 类中我使用 InputStream (java.sql.Blob 也是)调用
new ARRAY(varcharAdd, getConnection(), addArray);
它发现一个错误,在调试模式下e.printStackTrace(); 显示 ASCII 系统代码,我的系统开始发出声音:围兜。
对于 java.sql.Blob 的情况,它会抛出此消息:
java.sql.SQLException: Fail to convert to internal representation: javax.sql.rowset.serial.SerialBlob@d316ee
at oracle.jdbc.oracore.OracleTypeBLOB.toDatum(OracleTypeBLOB.java:71)
at oracle.sql.StructDescriptor.toOracleArray(StructDescriptor.java:723)
at oracle.sql.StructDescriptor.toArray(StructDescriptor.java:1298)
at oracle.sql.STRUCT.<init>(STRUCT.java:167)
at oracle.sql.OracleSQLOutput.getSTRUCT(OracleSQLOutput.java:125)
at oracle.sql.STRUCT.toSTRUCT(STRUCT.java:502)
at oracle.jdbc.oracore.OracleTypeADT.toDatum(OracleTypeADT.java:329)
at oracle.jdbc.oracore.OracleTypeADT.toDatumArray(OracleTypeADT.java:373)
at oracle.jdbc.oracore.OracleTypeUPT.toDatumArray(OracleTypeUPT.java:110)
at oracle.sql.ArrayDescriptor.toOracleArray(ArrayDescriptor.java:1240)
at oracle.sql.ARRAY.<init>(ARRAY.java:103)
有没有人使用 blob Oracle 阵列并面临这种问题。
【问题讨论】:
-
请也分享您的异常堆栈跟踪。
-
我刚刚编辑了我的问题。请检查