我有一个使用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)
谢谢。
答案 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)。