2

インメモリ DB2 データベースで挿入ステートメントを実行しようとすると、DBUnit が例外をスローします。

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

「HOUR」が DB2 の予約キーワードであることは認識していますが、dbunit でこの予約キーワードをエスケープする方法がわかりません。

4

2 に答える 2

4

dbunit のデフォルトのエスケープ パターンが null 文字列であることが判明したため、dbunit は予約済みキーワードを認識し、null 文字列でエスケープしようとしました。これを変更するために、次を使用して予約済みキーワードのエスケープ パターンを変更しましたが、現在は機能しています。

dbunitConn.getConfig().setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "\"?\"");
于 2013-07-19T12:34:15.223 に答える
1

データベース構成でプロパティを使用してみることができます:

DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "[HOUR]");
于 2013-07-18T15:45:21.523 に答える