org.hibernate.exception.SQLGrammarException:无法执行本机批量操作查询

时间:2015-11-06 09:15:22

标签: oracle hibernate

我在我的应用程序中使用了oracle。

使用此代码时遇到问题:

import org.hibernate.Hibernate;
    import org.hibernate.SQLQuery;
    import org.hibernate.Session;
    import org.hibernate.Query;
    ....
    ....
    .....

     public void insertGR(String id,String num) {


                String query = "execute md_pkg.insert_Gr("+id+"," + num + ")";


                SQLQuery sqlQuery = this.getSession().createSQLQuery(query);
                sqlQuery.executeUpdate();



            }

在jboss consol中我有这个错误:

SQL Error: 900, SQLState: 42000
ORA-00900: invalid SQL statement


org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query
    at 

但是当我使用sqldevelopper时我没有任何问题

execute execute md_pkg.insert_Gr(9,25)

1 个答案:

答案 0 :(得分:0)

ORA-900: Invalid SQL statement应该给你足够的线索,说明发生了什么/错了什么。您要执行的语句不是SQL,它是尝试调用PL / SQL存储过程。所以,而不是

"execute md_pkg.insert_Gr("+id+"," + num + ")"

你应该(也许!我根本不知道Hibernate)而不是

"call md_pkg.insert_Gr("+id+"," + num + ")"

"begin md_pkg.insert_Gr("+id+"," + num + "); end;"

而不是使用SQLQuery类尝试找到能够执行存储过程或匿名PL / SQL块的东西。

PS:我根本不了解Hibernate,所以我无法帮你找到正确的课程。