Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle का varchar क्रम क्रम varchar तुलना के व्यवहार से मेल क्यों नहीं खाता है?

पीटर,

छँटाई का व्यवहार NLS_SORT . द्वारा नियंत्रित होता है सत्र पैरामीटर, जबकि तुलना के लिए व्यवहार NLS_COMP . पर निर्भर है पैरामीटर। आपके पास एक बेमेल होना चाहिए।

मुझे वही परिणाम मिलता है जो आप निम्न मापदंडों के साथ करते हैं:

SQL> SELECT *
  2    FROM nls_session_parameters
  3   WHERE parameter IN ('NLS_COMP', 'NLS_SORT');

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_SORT                       FRENCH
NLS_COMP                       BINARY

हालाँकि जब दोनों का मिलान होता है तो परिणाम एक समान होता है:

SQL> alter session set nls_comp=LINGUISTIC;

Session altered

SQL> select * from (
  2    select '000000000000' as x from dual
  3    union
  4    select '978123456789' as x from dual
  5    union
  6    select 'B002AACD0A' as x from dual
  7  ) /*where x>'000000000000'*/ order by x;

X
------------
B002AACD0A
000000000000
978123456789

SQL> select * from (
  2    select '000000000000' as x from dual
  3    union
  4    select '978123456789' as x from dual
  5    union
  6    select 'B002AACD0A' as x from dual
  7  ) where x > '000000000000' order by x;

X
------------
978123456789



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल:टाइमस्टैम्प में मिनट कैसे जोड़ें?

  2. मुझे Oracle में GUID कैसे स्टोर करना चाहिए?

  3. Oracle PL/SQL तालिका प्रकार का TO_CHAR

  4. Oracle में sql ट्यूनिंग कैसे करें

  5. एसक्यूएल में डेटाटाइप का आकार बदलें