我在ORACLE(10g)数据库中使用以下查询。
来自student_table的SELECT *,其中student_no喜欢'%STUDENT%' 相交 来自student_table的SELECT *,其中student_no位于('STUDENT1234','STUDENT5678')
我得到的错误如下: java.sql.SQLSyntaxErrorException:ORA-00932:不一致的数据类型:预期 - 获得CLOB
任何想法如何解决此错误?
答案 0 :(得分:4)
我猜student_table
至少包含一个数据类型为clob的列。
那么你不应该select *
,而只能使用非clob列。
答案 1 :(得分:1)
当结果集包含任何LOB时,您无法进行INTERSECT。
但是,在这种情况下,您不需要交叉:
SELECT * from student_table
where student_no like '%STUDENT%'
and student_no in ('STUDENT1234','STUDENT5678');
并且,如前所述,在这个特定情况下,第一个条件仍然是多余的:
SELECT * from student_table where student_no in ('STUDENT1234','STUDENT5678');