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

OracleのCOLLATION()関数

    Oracle Databaseでは、COLLATION() 関数は、引数として派生した照合の名前を返します。

    構文

    構文は次のようになります:

    COLLATION(expr)

    exprの場所 タイプCHARの文字列に評価する必要があります 、VARCHAR2LONGNCHAR 、またはNVARCHAR2

    基本的な例は次のとおりです。

    SELECT COLLATION('Boat')
    FROM DUAL;

    結果:

    USING_NLS_COMP

    COLLATEの例 条項

    COLLATEを使用すると次のようになります 照合を明示的に指定する句:

    SELECT COLLATION('Boat' COLLATE LATIN_AI) 
    FROM DUAL;

    結果:

    LATIN_AI

    NLS_SORTを使用する場合の考慮事項

    COLLATION() 関数は、データにバインドされた照合のみを返し、NLS_SORTによって設定された動的照合は返しません。 パラメータ。

    例:

    SELECT COLLATION('Boat' COLLATE USING_NLS_SORT) 
    FROM DUAL;

    結果:

    USING_NLS_SORT

    SYS_CONTEXT()を使用できます NLS_SORTの値を返す関数 パラメータ:

    SELECT SYS_CONTEXT('USERENV','NLS_SORT')
    FROM DUAL;

    結果:

    BINARY

    ただし、_CIなどのサフィックス 、_AI 、および_CS 返されます:

    SELECT 
        COLLATION('Boat' COLLATE USING_NLS_SORT_CI) AS "_CI",
        COLLATION('Boat' COLLATE USING_NLS_SORT_CS) AS "_CS",
        COLLATION('Boat' COLLATE USING_NLS_SORT_AI) AS "_AI"
    FROM DUAL;

    結果:

                     _CI                  _CS                  _AI 
    ____________________ ____________________ ____________________ 
    USING_NLS_SORT_CI    USING_NLS_SORT_CS    USING_NLS_SORT_AI    

    ヌル引数

    nullを渡しても、照合は返されます :

    SELECT COLLATION(null)
    FROM DUAL;

    結果:

    USING_NLS_COMP

    引数の数が正しくありません

    引数を渡さずに関数を呼び出すと、エラーが発生します:

    SELECT COLLATION()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT COLLATION()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    また、あまりにも多くの引数を渡すと、エラーが発生します:

    SELECT COLLATION('Boat', 'Dang')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT COLLATION('Boat', 'Dang')
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    1. PostgreSQLエラーログをデコードする方法

    2. 条項間のMySQLは包括的ではありませんか?

    3. SQLServerのTempDBファイルの場所の変更

    4. SQLで最上位の親を見つける