2011-02-16 88 views
2

我在我的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

任何想法如何解决此错误?

+2

你会意识到,尽管有错误,但这两者的相交只是第二个查询的结果,不是吗?至少我是这么认为的。我可能是错的,这不会是第一次:-) – paxdiablo 2011-02-16 09:58:20

回答

4

我猜student_table包含至少一个数据类型为clob的列。

那么你不要select *那么,但只有非clob列。

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'); 
相关问题