在jdbc(oracle)中通过struct插入blob

时间:2016-06-24 09:21:08

标签: java oracle jdbc plsql

我有一个sql数据类型'ty_order',其中包含一些id,string等...以及 blob 。数据类型用于避免程序头具有15个以上的参数。

在java中,我执行以下操作:

byte[] bytes = ...;
OracleConnection c = ...;
OracleCallableStatement stmt = ... ;
StructDescriptor orderDescriptor = StructDescriptor.createDescriptor('ty_order', c);

List<Object> elements = new ArrayList<Object>();

BLOB blob = new BLOB((OracleConnection) c, bytes.clone());
// put some other stuff into elements
elements.add(blob);

STRUCT order = new STRUCT(orderDescriptor, c, elements.toArray());

stmt.registerOutParameter(1, OracleTypes.BIGINT);
stmt.setSTRUCT(2, order);

stmt.execute();

相应的pl / sql过程解压缩结构并将所有内容插入表中。但是,插入 blob 会以我的方式抛出SQLException:

java.sql.SQLException: ORA-24812: character set conversion to or from UCS2 failed

我已经确认,异常的原因是插入 blob 。任何人都可以建议此错误的来源吗?

0 个答案:

没有答案