1)nlssort
を使用する BINARY_AIを使用(大文字と小文字の両方とアクセントを区別しない):
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)NLS_SORTセッション変数をbinary_aiに変更することもできます。そうすれば、毎回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)nlssort
の使用をやめる 関数を作成し、すべてのセマティックを変更し、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
オプション1は、ローカルの動作、つまり異なる結果が必要なクエリのみを変更します。オプション2および3は、他のクエリの動作を変更するため、希望どおりにならない場合があります。 表5-2
を参照してください。 Oracle®データベースグローバリゼーションサポートガイド
。 「