在 DBUnit 中使用 BLOB
Using BLOB in DBUnit
我必须测试 class,我们从 Oracle 的 XMLTYPE 列中检索数据。我们正在使用 BLOB 进行转换,因为系统也准备在 MySQL 中 运行:
BLOB salePlanXmlType = (BLOB) jdsLoad.getValueCell(0, "SALEPLAN");
在 DBUnit 中,我们首先创建 table,然后加载数据。加载部分很有趣,但我使用找到的提示 here.
设法加载了两个 XML
无论如何,我无法在 DBUnit 中创建一个 BLOB 类型的 table。这是我尝试执行的脚本:
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 的创建 table 语句中使用过 BLOB 吗?
异常来自不支持 BLOB 的旧版本 HSQLDB(可能是 1.8)。使用最新版本 2.3.x jar 代替。
我必须测试 class,我们从 Oracle 的 XMLTYPE 列中检索数据。我们正在使用 BLOB 进行转换,因为系统也准备在 MySQL 中 运行:
BLOB salePlanXmlType = (BLOB) jdsLoad.getValueCell(0, "SALEPLAN");
在 DBUnit 中,我们首先创建 table,然后加载数据。加载部分很有趣,但我使用找到的提示 here.
设法加载了两个 XML无论如何,我无法在 DBUnit 中创建一个 BLOB 类型的 table。这是我尝试执行的脚本:
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 的创建 table 语句中使用过 BLOB 吗?
异常来自不支持 BLOB 的旧版本 HSQLDB(可能是 1.8)。使用最新版本 2.3.x jar 代替。