세 개의 NCLOB 열이있는 테이블이 있습니다. 각 NCLOB에 대해 얼마나 많은 'TC'또는 'NC'가 아닌지 계산하고 싶습니다. case ... end 접근 방식은 NVARCHAR2 열에서는 작동하지만 NCLOB에서는 작동하지 않습니다. 투영 목록에서 NCLOB의 값을 테스트하려면 어떻게해야합니까?Oracle 프로젝션 목록에서 Alien_Body_Part (NCLOB) 값을 테스트하는 방법은 무엇입니까?
오라클 데이터베이스 11.1.0.6.0
이 최소한의 예는 루트 문제를 보여줍니다 11g 릴리스.
create table t (
alien_body_part nclob
);
insert into t(alien_body_part) values(null);
insert into t(alien_body_part) values('TC');
insert into t(alien_body_part) values('NC');
insert into t(alien_body_part) values('Extended Mandible');
select case when alien_body_part in ('TC', 'NC') then 0 else 1 end from t
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got NCLOB
1 :
는 또한 CASE 나 IN도는 (당신이 SQL에서 직접 CLOB/NCLOB를 비교할 수 없습니다), 고려 여기 오류의 원인이다. –