我必须测试一个从OracleTYPE列中检索Oracle数据的类。我们正在使用BLOB进行转换,因为系统也准备在MySQL中运行:
BLOB salePlanXmlType = (BLOB) jdsLoad.getValueCell(0, "SALEPLAN");
在DBUnit中,首先我们创建表,然后加载数据。加载部分很有趣,但我设法使用here找到的提示加载了两个XML。
无论如何,我无法使用BLOB类型在DBUnit中创建表。这是我尝试执行的脚本:
CREATE TABLE TSHT_SALEPLAN
(
SALEPLANCODE INTEGER,
VENDORCODE VARCHAR(10),
HOTELCODE INTEGER,
SALEPLAN BLOB
);
当我使用此脚本运行测试时,出现以下错误:
java.sql.SQLException: Wrong data type: BLOB in statement
[CREATE TABLE TSHT_SALEPLAN
(
SALEPLANCODE INTEGER,
VENDORCODE VARCHAR(10),
HOTELCODE INTEGER,
SALEPLAN BLOB]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
我不明白,因为hsqldb似乎支持BLOB。
如果我更改BLOB列定义并使用VARBINARY,它可以工作。但是在我的代码中转换为Blob会引发异常。
有人在使用DBUnit的创建表语句中使用了BLOB吗?
答案 0 :(得分:2)
异常来自旧版本的HSQLDB(可能是1.8),它不支持BLOB。请改用最新版本的2.3.x jar。