Pet*_*rta 7 oracle hibernate jpa jpql ora-00932
我有一个JPQL查询,可以正常使用MySQL和SQL Server.但是随着Oracle的失败
ORA-00932: inconsistent datatypes: expected - got CLOB
Run Code Online (Sandbox Code Playgroud)
原因似乎是Oracle不支持带CLOB列的ORDER BY.
有没有JPQL解决这个问题?
您需要将CLOB转换为Varchar才能进行排序。不幸的是,在Oracle中,Varchar列限制为4000个字符。如果按前4000个字符进行排序是合理的,那么下面是一个使用DBMS_LOB.SUBSTR的SQLPlus示例:
SQL> create table mytable (testid int, sometext clob);
Table created.
SQL> insert into mytable values (1, rpad('z',4000,'z'));
1 row created.
SQL> update mytable set sometext = sometext || sometext || sometext;
1 row updated.
SQL> select length(sometext) from mytable;
LENGTH(SOMETEXT)
----------------
12000
SQL> select testid from mytable
2 order by dbms_lob.substr(sometext, 0, 4000);
TESTID
----------
1
SQL> drop table mytable;
Table dropped.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5914 次 |
| 最近记录: |