[ORACLE] ORA-12704 문자 집합이 일치하지 않습니다. nvarchar 컬럼
|
|
select case when 언어코드없으면 then nvarchar컬럼 else varchar컬럼 end from "varchar+nvarchar컬럼으로 구성된 테이블"
ORA-12704: 문자 집합이 일치하지 않습니다.
nvarchar와 varchar를 병행하는 경우에 생기는데...
그럴때는 DECODE() 또는 CASE문이 아닌 NVL2()를 사용하면 해결...
select
NVL2(언어코드있으면, nvarchar컬럼, varchar컬럼)
from "varchar+nvarchar컬럼으로 구성된 테이블"
그 이외의 방법들에 대한 쿼리도 아래 참고....
언어코드에 따라 다국어인 경우에는 nvarchar 컬럼을 조회하도록...
cast(), unistr(), decode(), nvl2() 등등~
select
case
when lang_cd is not null then 'nvarchar 컬럼'
else cast('varchar 컬럼' as nvarchar2(1000))
end cast_val,
decode(lang_cd, '', 'varchar 컬럼', 'nvarchar 컬럼') as decode_val,
case
when
lang_cd is not null then 'nvarchar 컬럼'
else unistr('varchar
컬럼')
end unistr_val,
nvl2(lang_cd, 'nvarchar 컬럼', 'varchar 컬럼') as nvl2_val
from 테이블