两个表:
COR_RADICADO_OFICIO:
- num_radicado (pk)
- ano_radicado (pk)
(我知道,复合pks是邪恶的,但它是遗留数据库,而不是我的设计;)
和
COR_RESPUESTA_OFICIO:
- num_radicado (text)(fk)
- ano_radicado (number)(fk)
- requiere_respuesta (number)
在休眠中:
createSQLQuery("select * from COR_RADICADO_OFICIO where REQUIERE_RESPUESTA = 399 " +
"and concat(concat(num_radicado , '_'), ano_radicado) not in "+
"(select concat(concat(num_radicado , '_), ano_radicado) from COR_RESPUESTA_OFICIO);" );
如果我直接在oracle上执行此查询,它可以正常工作,但是hibernate会抛出
java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
尝试用'||'替换'concat'功能并得到了同样的错误。
任何想法如何解决这个问题? (除了创建视图)。
答案 0 :(得分:7)
尝试删除分号? 你得到的错误并没有说无效的SQL,它说的是完全不同的无效字符。