sql >> データベース >  >> RDS >> Oracle

英語以外の文字を含むOracle検索テキスト

    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®データベースグローバリゼーションサポートガイド 。 「言語インデックスの使用<」のセクションも参照してください。 / a> 「インデックスを使用できるようにする方法を確認してください。




    1. TUPLESを使用してSQLIN句に1000を超えるエントリを配置する

    2. XAMPPとMysqlWorkbenchを一緒に使用する

    3. Node.jsのMySQLデータベースに接続できません

    4. sqldfとRPostgreSQLを一緒に使用する