sql >> Database >  >> RDS >> Oracle

Oracle-zoektekst met niet-Engelse tekens

1) Gebruik nlssort met BINARY_AI (zowel hoofdletters als accenten):

SQL> select nlssort('Peña Báináõ', 'NLS_SORT = BINARY_AI') C from dual;

C
------------------------
70656E61206261696E616F00

SQL> select nlssort('Pena Bainao', 'NLS_SORT = BINARY_AI') C from dual;

C
------------------------
70656E61206261696E616F00

SQL> select nlssort('pena bainao', 'NLS_SORT = BINARY_AI') C from dual;

C
------------------------
70656E61206261696E616F00

SQL> select 'true' T from dual where nlssort('pena bainao', 'NLS_SORT = BINARY_AI') = nlssort('Peña Báináõ', 'NLS_SORT = BINARY_AI') ;

T
----
true

2) U kunt ook de sessievariabele NLS_SORT wijzigen in binary_ai en dan hoeft u niet elke keer NLS_SORT op te geven:

SQL> select 'true' T from dual where nlssort('pena bainao') = nlssort('Peña Báináõ') ;

no rows selected

SQL> alter session set nls_sort = binary_ai;

Session altered.

SQL> select 'true' T from dual where nlssort('pena bainao') = nlssort('Peña Báináõ') ;

T
----
true

3) Het gebruik van nlssort laten vallen functie en verander de sematica van alles, stel ook de sessievariabele nls_comp in:

SQL> select 'true' T from dual where 'pena bainao' = 'Peña Báináõ';

no rows selected

SQL> alter session set nls_comp = linguistic;

Session altered.

SQL> select 'true' T from dual where 'pena bainao' = 'Peña Báináõ';

T
----
true

Optie 1 verandert alleen het lokale gedrag, de zoekopdracht waarbij u andere resultaten wilt. Optie 2 en 3 veranderen het gedrag van andere zoekopdrachten en zijn mogelijk niet wat u wilt. Zie Tabel 5-2 van Oracle® Database Globalization Support Guide . Kijk ook in de sectie "Linguïstische indexen gebruiken " om te zien hoe u indexen kunt gebruiken.




  1. Extraheer de eerste getalwaarde uit string sql

  2. Doorgaan met invoegingen in Oracle wanneer er een uitzondering wordt gemaakt

  3. Maximaal aantal kolommen in MySQL-tabel

  4. Werken met ODBC-gegevens in DbVisualizer