2011-02-16 4 views
2

내 ORACLE (10g) DB에서 다음 쿼리를 사용하고 있습니다. student_table에서Oracle 오류 : 일치하지 않는 데이터 유형

SELECT * 여기서 '%의 학생 %'('STUDENT1234', 'STUDENT5678')

에서 student_no 내가 같은 오류가 어디서 얻었 이 student_table에서 SELECT * 교차 같은 student_no : 자바. sql.SQLSyntaxErrorException : ORA-00932 : 일치하지 않는 데이터 유형 : 예상 됨 - CLOB

모든 오류 메시지이 오류를 해결하는 방법은 무엇입니까?

+2

당신은 오류에도 불구하고, 그 둘의 교차점은 단지 두 번째 질의의 결과 일 것이라는 것을 알고 있습니다. 그렇지 않습니까? 적어도 나는 그렇게 생각한다. 나는 틀릴 수도 있고, 처음이 아닐 수도 있습니다 :-) – paxdiablo

+0

@paxdiablo : 당신 말이 맞아요. 비교 또는 문자열이 다르면 INTERSECT 대신 where 절에서 "AND"를 사용하여 수행 할 수 있습니다. – redcayuga

답변

4

student_table에는 데이터 유형이 clob 인 열이 하나 이상 있다고 생각됩니다.

그 다음에 non-clob 열만 select *이 아닙니다.

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');