0

您好我正在尝试执行本机查询:

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

(该脚本将包含多个插入,但当我只使用一个时它已经失败)

使用这种方法:

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 单词,脚本将毫无问题地执行,但由于我要在单个脚本中进行多次插入,我需要 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 回答