6

我正在尝试使用休眠本机 SQL (createSQLQuery) 语句删除临时表。这是代码:

session.createSQLQuery("DROP TABLE tmp_dummy_table").executeUpdate();

但是,它使我遇到了异常:

SQL 错误:1003,SQL 状态:24000
ORA-01003: 没有解析语句

创建 tmp_dummy_table tableorg.hibernate.exception.GenericJDBCException 时出现异常:org.hibernate.exception.GenericJDBCException:无法执行查询
  在 org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        在 org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        在 org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        在 org.hibernate.loader.Loader.doList(Loader.java:2223)
        在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
        在 org.hibernate.loader.Loader.list(Loader.java:2099)
        在 org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
        在 org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
        在 org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
        在 org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152) ....

你能建议这段代码有什么问题吗?

4

1 回答 1

4

正如您在代码示例中所写,从您的堆栈跟踪来看,您调用list()的是而不是。executeUpdate()确保您实际调用executeUpdate().

于 2011-11-17T18:55:32.197 回答