【发布时间】:2014-11-19 01:59:59
【问题描述】:
我的 hsqldb 测试有点问题。
我使用 oracle 11g 作为项目的数据源,使用 hsqldb-2.3.2.jar 进行测试。
在一个查询中,我使用了这个正则表达式AND REGEXP_LIKE(CODE_SC, '*PL[0-9]_J5[1-9]$')
我不能用 hsqldb 测试它,我已经像这样配置了我的数据源:
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:mem:castor;sql.syntax_ora=true" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
和带有
的 sessionFactory<prop key="hibernate.dialect">fr.edf.mpv2.castor.persistance.HsqlOracleDialect</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.hbm2ddl.import_files">import.sql</prop>
我在 import.sql 中添加了我需要的所有内容,它工作正常。
我已经创建了一个类:
public class HsqlOracleDialect extends Oracle10gDialect {
public HsqlOracleDialect() {
super();
}
@Override
protected void registerFunctions() {
registerFunction("regexp_like", new SQLFunctionTemplate(Hibernate.BOOLEAN,
"case when (regexp_like(?1,?2)) then 1 else 0 end)"));
}
}
但我收到此错误:
user lacks privilege or object not found: REGEXP_LIKE
我是不是忘了申报什么?
非常感谢。
【问题讨论】: