2012-08-01 3 views
0

나는 문제가 간단한 쿼리를 실행하는 데 문제는 중국어 문자입니다. 그 문자는 테이블에 있습니다. (테이블에서 select *를 한 후 복사 했으므로 중국어 문자를 표시하는 데는 문제가 없습니다.) 그러나 작동하지 않는 것 같습니다. 쿼리를 실행하면 0 행을 반환합니다. 나는 '문자열 비교 쿼리 - 그런 다음</p> <pre><code>select * from table_name where variabe_name like '在职' </code></pre> <p>문제로 오라클 데이터베이스

select * from table_name where variabe_name like '%在职%' 

select * from table_name where variabe_name = '在职' 

을 시도하지만 그 중 하나가 작동하지 않습니다했습니다.

문제의 원인에 대한 단서가 있습니까?

NLS_CHARACTERSETAL32UTF8로 설정해야합니다 귀하의 많은

+0

보기 (http://forums.devshed.com/oracle-development-96/oracle-10g-chinese-charecter-issue-708247.html) 내가 시도하는 것이 좋습니다 것 –

+0

은 LIKE 대신 LIKE를 사용하여 복합 문자를 처리합니다. (또는 가능하면 LIKE2 또는 LIKE4) – tvm

+0

unistr ('% \ 4E2D \ 6587 %') '또는'variabe_name = unistr ('\ 4E2D \ 6587')와 같이 variabe_name이 될 수 있습니다. 다음은 링크 [링크]입니다 (http://www.sqlsnippets.com/en/topic-13406.html) – valex

답변

1
SQL> create table mytbl (data_col varchar2(200)); 
Table created 
SQL> insert into mytbl values('在职'); 
1 row inserted. 
SQL> commit; 
Commit complete. 
SQL> select * from mytbl where data_col like '%在职%'; 
DATA_COL                                                
----------- 
在职 

SQL> SELECT * FROM nls_database_parameters where parameter='NLS_CHARACTERSET'; 
PARAMETER      VALUE         
------------------------------ ---------------------------------------- 
NLS_CHARACTERSET    AL32UTF8 

에게 Thnaks. 그래서

SQL> ALTER SESSION SET NLS_CHARACTERSET = 'AL32UTF8'; 

는 또한 매개 변수 NLS_NCHAR_CHARACTERSETUTF8로 설정되어 있는지 확인하십시오. 이 [스레드]에서

SQL> ALTER SESSION SET NLS_NCHAR_CHARACTERSET = 'UTF8';