DBUnit выполняет несколько операторов в базе данных DB2

Мне нужно выполнить несколько операторов SQL в базе данных DB2 из DbUnit. Я попытался выполнить инструкции таким образом:

connection.prepareStatement("statement1;statement2;").execute();

Но проблема в том, что DB2 не распознает; как терминатор оператора, поэтому я получаю ошибку SQL с кодом -104.

Можно установить терминатор оператора при вызове оператора SQL из командной строки с помощью параметра -t. Но как это сделать из DbUnit?

Я также пробовал поставить --#SET TERMINATOR ; перед операторами, но это не сработало.


person Jardo    schedule 12.08.2014    source источник


Ответы (1)


В методе prepareStatement невозможно передать несколько операторов. Это связано не с DB2, а с JDBC, и, как говорится в методе, используется для подготовки ОДНОГО оператора.

Вы можете использовать пакетный оператор, когда вы готовите несколько операторов.

Точка с запятой - это разделитель операторов в скриптах, но может быть и любой другой разделитель.

person AngocA    schedule 12.08.2014