2013-07-18 3 views
2

DBUnit бросает исключение при попытке запуска оператора вставки на в памяти базы данных DB2:Спасаясь зарезервированные ключевые слова в DbUnit для DB2

org.dbunit.dataset.DataSetException: java.sql.SQLSyntaxErrorException: Syntax error: Encountered "HOUR" at line 1, column 45. 

я понимаю, что «ЧАС» является зарезервированным ключевым словом в DB2, но Я не уверен, как получить dbunit, чтобы избежать этого зарезервированного ключевого слова.

ответ

4

Найден, что шаблон побега по умолчанию для DbUnit является пустой строкой, поэтому DbUnit признал зарезервированное ключевое слово и попытался избежать его с пустой строкой. Чтобы изменить это, я использовал следующее, чтобы изменить шаблон побега для зарезервированных ключевых слов, и теперь он работает:

dbunitConn.getConfig().setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "\"?\""); 
+3

'SetProperty (DatabaseConfig.PROPERTY_ESCAPE_PATTERN«? \ '\'»);' Работал MySQL –

1

Вы можете попробовать использовать свойства по конфигурации базы данных:

DatabaseConfig config = connection.getConfig(); 
config.setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "[HOUR]"); 
Смежные вопросы