3

休止状態で実行したいネイティブ SQL クエリがありますが、エラーがスローされます。

org.hibernate.exception.SQLGrammarException:
could not execute native bulk manipulation query
Caused by: 
com.ibm.db2.jcc.am.SqlSyntaxErrorException: An unexpected token ""
was found following "".  Expected tokens may include:  "NQ_EXE_ID = 12345"

更新を実行するために実行するコードは次のとおりです。

SQLQuery updateQuery = getSession().createSQLQuery(updateSql);
System.out.println(updateQuery.getQueryString());    
updateQuery.executeUpdate();

デバッグ中に SQLQuery オブジェクトの内部を見ることができ、SQL は次のとおりです: (これは db2 で正常に動作します)

UPDATE some_table SET DEST_FLDR = 'some_value' ,
LST_CHG_TMS = CURRENT TIMESTAMP
WHERE SUB_RUN_ID = 111111    
AND INQ_EXE_ID = 12345   ;

上記のコードで生成されたSQLを手動で実行すると、正常に実行されます。ただし、休止状態で実行しようとすると、「syntaxErrorException」がスローされます。何か案は?ありがとう

4

1 に答える 1

6

この問題は、クエリの末尾にあるセミコロンが原因で発生します。使用する PostgreSQL SQL ツールは、複数のクエリを分離できるため必要ですが、Java ステートメントを介して個々のクエリを実行するには、セミコロンが存在してはなりません。

于 2013-10-02T13:27:22.217 に答える