0

こんにちは、ネイティブクエリを実行しようとしています:

String script = " Insert into ASSIGNMENT_GROUP (OID,VERSION,DEPARTMENT,NAME) values ('abf7e0e086f311e29e960800200c9a66','0','KS','4441'); ";

(スクリプトには複数の挿入が含まれますが、1 つしか使用しないと既に失敗しています)

この方法の使用:

public void runNativeScript(String script) {
    Query q = oracleMgr.createNativeQuery("BEGIN "+script + "END;");
    q.executeUpdate();
}

次のエラーが表示されます。

Caused by: java.sql.SQLException: Unexpected token: BEGIN in statement [BEGIN]

Begin と End の単語を削除すると、スクリプトは問題なく実行されますが、1 つのスクリプトで複数の挿入を行うため、BEGIN と END が必要です。

誰かが私を助けて、何が悪いのか教えてもらえますか? 前もって感謝します。

4

1 に答える 1

0

次のようなことを試してください:

public void runNativeScript(String script) {
    Query q = oracleMgr.createNativeQuery("{ call BEGIN " + script + " END }");
    q.executeUpdate();
}

これは標準の SQL92 構文です。http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm#JJDBC28075で例を確認できます。

于 2013-10-03T09:43:00.863 に答える