Domanda

DBUnit is throwing an exception when trying to run an insert statement on an in-memory DB2 database:

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

I realize that "HOUR" is a reserved keyword in DB2 but I'm not sure how to get dbunit to escape this reserved keyword.

È stato utile?

Soluzione

Found that the default escape pattern for dbunit is the null string, so dbunit recognized the reserved keyword and tried to escape it with a null string. To change this, I used the following to change the escape pattern for reserved keywords and now it's working:

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

Altri suggerimenti

You could try using properties on database configurations :

DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "[HOUR]");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top