使用HSQL的DATE函数时出错

时间:2013-12-20 21:14:29

标签: java db2 hsqldb ibatis

我有一个使用SQL访问 DB2 数据库的项目。在代码上运行junit测试用例时,我使用 HSQL 数据库。 java项目通过iBATIS使用SQL。

如果HSQL遇到DATE函数,我遇到错误,例如DATE(STATUS_CREATE_TS)对解决方案的任何想法?

  

---原因:java.sql.SQLException:用户缺少未找到的权限或对象:DATE at   org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)     在   org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)     在   org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)     在   org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)     在   org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:203)     在   org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:268)

谢谢。

2 个答案:

答案 0 :(得分:3)

此函数特定于DB2,不受HSQLDB直接支持。

您可以将测试功能定义为:

 create function date(ts timestamp) returns date return cast(ts as date);

答案 1 :(得分:0)

您是否尝试过HSQL设置:

SET DATABASE SQL SYNTAX DB2 TRUE

http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html中所述(表12.27)。