hbm 文件中的 select 语句中的函数“right”出错

Cen*_*giz 3 java sql database oracle hibernate-mapping

我在休眠 hbm 文件中收到以下语句的错误:

...
<subselect>
   <![CDATA[
      select t.colA, right(t.colB, 12) b
   ]]>
</subselect>
...
Run Code Online (Sandbox Code Playgroud)

错误是 Caused by: java.sql.SQLException: ORA-00904: "RIGHT": invalid Identifier

数据库:Oracle 11g Hibernate:3.5.6-Final

在 Java 方面,我使用 Hibernate Criteria 从数据库中检索数据。没有该right功能,它可以正常工作。该语句运行也没有错误,直接在数据库上使用 sql 客户端执行。

Criteria API 会导致问题吗?

mel*_*lik 5

Oracle 似乎不支持RIGHT功能。您可以尝试使用SUBSTRfunction 代替,例如:

select t.colA, substr(t.colB,-12) b 
Run Code Online (Sandbox Code Playgroud)

参考:

oradev 上的 Oracle 字符串函数

techonthenet 上的 Oracle 字符串函数

Oracle/PLSQL 字符串函数

Oracle 权限功能