2011-02-16 112 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'); 
相關問題