1) Używanie nlssort
z BINARY_AI (zarówno wielkość liter, jak i bez akcentu):
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) Możesz również zmienić zmienną sesji NLS_SORT na binary_ai, a wtedy nie będziesz musiał za każdym razem podawać NLS_SORT:
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) Aby zrezygnować z używania nlssort
funkcji i zmień sematykę wszystkiego, ustaw także zmienną sesji nls_comp:
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
Opcja 1 zmienia tylko zachowanie lokalne, zapytanie, w którym chcesz uzyskać różne wyniki. Opcje 2 i 3 zmienią zachowanie innych zapytań i mogą nie być tym, czego chcesz. Zobacz Tabela 5-2 Przewodnik obsługi globalizacji bazy danych Oracle® . Zobacz także sekcję „Korzystanie z indeksów językowych ", aby zobaczyć, jak korzystać z indeksów.