Oracle错误:数据类型不一致
问题描述:
我在我的ORACLE(10g)数据库中使用以下查询。Oracle错误:数据类型不一致
SELECT * FROM student_table其中student_no LIKE '%学生%' INTERSECT SELECT * FROM student_table其中student_no在( 'STUDENT1234', 'STUDENT5678')
我喜欢错误: 的Java。 sql.SQLSyntaxErrorException:ORA-00932:不一致的数据类型:预计 - 得到CLOB
任何想法如何解决此错误?
答
我猜student_table
包含至少一个数据类型为clob的列。
那么你不要select *
那么,但只有非clob列。
答
当结果集包含任何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');
你会意识到,尽管有错误,但这两者的相交只是第二个查询的结果,不是吗?至少我是这么认为的。我可能是错的,这不会是第一次:-) – paxdiablo 2011-02-16 09:58:20