2010-06-06 3 views
1

나는 (오라클 10g 데이터베이스에서 실행)이 쿼리를 가지고 :아랍어 SQL 쿼리는 빈 결과를 반환

SELECT ge.*, ge.concept AS glossarypivot 
FROM s_glossary_entries ge 
WHERE (ge.glossaryid = '161' OR ge.sourceglossaryid = '161') 
AND (ge.approved != 0 OR ge.userid = 361) 
AND concept like 'م%' ORDER BY ge.concept 

아랍어 문자로 시작하는 모든 단어를 표시해야합니다 "م" 를 쿼리 하지만 불행히도, 그것은 빈 결과를 반환 ..

을하지만, 내가 MYSQL에서 실행되는 동일한 데이터베이스에서 동일한 쿼리를 실행하는 경우, 그것은 잘 작동하고 올바른 결과를 표시합니다 ..

과도, 내가 실행하는 경우 다음과 같은 영문자 (m)로 된 동일한 검색어 :

SELECT ge.*, ge.concept AS glossarypivot 
FROM s_glossary_entries ge 
WHERE (ge.glossaryid = '161' OR ge.sourceglossaryid = '161') 
AND (ge.approved != 0 OR ge.userid = 361) 
AND concept like 'm%' ORDER BY ge.concept 

결과가 올바르게 표시되고 비어 있지 않습니다.

이 쿼리가 oracle 10 데이터베이스에서 제대로 작동하려면 어떻게해야합니까?

P. 오라클 데이터베이스 문자 집합은 다음과 같습니다 "AL32UTF8"

는 사전에이 MySQL의에서 작동

답변

0

물론 순전히 감사? 이 같은

AND concept = 'م' 

: :이 부분 할 것

AND concept LIKE 'م%' 

를하거나 아랍어의 첫 번째 문자가 하나가이처럼 권리이므로 :

AND concept LIKE '%م' 

하지만 난 아무 생각이 없다 오라클에도 LIKE가 있다면 오라클과 함께 일한 적이 없습니다. 나는 UTF8 문자를 넣어 경우

+0

실수로 죄송합니다 ... 질문을 다시보세요 ... 네, mysql에서 작동합니다 ... – JaHelia

+0

'م %'가 맞습니까? '% م'이 아니라? 왜냐하면 그것은 아랍인이기 때문입니다 .... – kalkin

0

"ظ ..."대신 아랍어 문자의 "م"는 오라클에서 작동합니다 ...

0

명백한 문제는, 당신이 일치하는 데이터가 않습니다.

실제로 값을 구성하는 바이트를 보려면 SELECT DUMP (개념), DUMP ('م') FROM ...을 사용할 수 있습니다. 내 데이터베이스는 나에게 217/133을 준다. 나는 UTF-8에서 다른 바이트를 가질 수 있지만 동일한 외형을 가질 수있는 문자가 있다고 믿는다. 그러나 이것이 그 중 하나인지는 말할 수 없다.

또한 Globalization 가이드를 참조하십시오.

0

오라클 클라이언트 코드 페이지의 불일치가 원인입니다. 그것은 데이터베이스와 동일한 문자 세트에 정의되어야하며 그렇지 않으면 문자 변환이있을 것입니다.

관련 문제