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

OracleのNLS_COLLATION_ID()関数

    Oracle Databaseでは、NLS_COLLATION_ID() 関数は、指定された照合のIDを返します。関数を呼び出すときに照合名を渡すと、照合IDが返されます。

    構文

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

    NLS_COLLATION_ID(expr)

    exprの場所 タイプVARCHAR2の照合名です。 。

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

    SELECT NLS_COLLATION_ID('XAZERBAIJANI')
    FROM DUAL;

    結果:

    70

    その他の例を次に示します。

    SELECT 
        NLS_COLLATION_ID('UCA0620_THAI') AS "1",
        NLS_COLLATION_ID('UCA0620_TSPANISH') AS "2",
        NLS_COLLATION_ID('CANADIAN_M') AS "3",
        NLS_COLLATION_ID('FRENCH_M') AS "4"
    FROM DUAL;

    結果:

            1         2       3       4 
    _________ _________ _______ _______ 
       208920    208917    4116    4112

    無効な照合

    無効な照合名を渡すと、nullになります :

    SET NULL 'null';
    SELECT NLS_COLLATION_ID('Oops!')
    FROM DUAL;

    結果:

    null

    デフォルトでは、SQLclおよびSQL * Plusは、nullの場合は常に空白を返します。 SQL SELECTの結果として発生します 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    ヌル引数

    nullを渡す nullを返します :

    SET NULL 'null';
    SELECT NLS_COLLATION_ID(null)
    FROM DUAL;

    結果:

    null

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

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

    SELECT NLS_COLLATION_ID()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_COLLATION_ID()
    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 NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
    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. MySQL5.6非GTIDからGTIDを使用したMySQL5.7へのオンライン移行

    2. 最大値を見つけて、SQLサーバーの別のフィールドから対応する値を表示します

    3. INNERJOINでCROSSAPPLYを使用する必要があるのはいつですか?

    4. SQL出力句が挿入されていない列を返すことは可能ですか?