转义 DB2 的 dbunit 中的保留关键字

And*_*ose 2 java sql db2 dbunit keyword

尝试在内存 DB2 数据库上运行插入语句时,DBUnit 抛出异常:

org.dbunit.dataset.DataSetException: java.sql.SQLSyntaxErrorException: Syntax error: Encountered "HOUR" at line 1, column 45.
Run Code Online (Sandbox Code Playgroud)

我意识到“HOUR”是 DB2 中的保留关键字,但我不确定如何让 dbunit 转义这个保留关键字。

And*_*ose 5

发现dbunit的默认转义模式是空字符串,因此dbunit识别出保留关键字并尝试用空字符串对其进行转义。为了改变这一点,我使用以下命令来更改保留关键字的转义模式,现在它可以工作了:

dbunitConn.getConfig().setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "\"?\"");
Run Code Online (Sandbox Code Playgroud)

  • `setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "\`?\`");` 适用于 MySQL (3认同)