Мне нужно проверить класс, в котором мы извлекаем данные из Oracle, из столбца XMLTYPE. Мы используем BLOB для литья, потому что система готова работать в MySQL тоже:Использование BLOB в DBUnit
BLOB salePlanXmlType = (BLOB) jdsLoad.getValueCell(0, "SALEPLAN");
В DBUnit, сначала мы создаем таблицу, а затем загрузку данных. Загрузка была забавной, но мне удалось загрузить два XML, используя найденные советы here.
В любом случае мне не удается создать таблицу в DBUnit с типом BLOB. Вот сценарий, я пытаюсь выполнить:
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)
Что я не понимаю, потому что BLOB, кажется, поддерживается по hsqldb.
Если я изменяю определение столбца BLOB и использую VARBINARY, он работает. Но тогда кастинг в Blob в моем коде генерирует исключение.
Кто-нибудь использовал BLOB в инструкции создания таблицы с помощью DBUnit?
Большое спасибо! Увидев решение, я удивляюсь, почему я об этом не думал. Во всяком случае, он работает сейчас (с версией 2.3.2)! – LeoLozes