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

OracleのNLS_CHARSET_ID()関数

    Oracleでは、NLS_CHARSET_ID() 関数は、指定された文字セットの文字セットID番号を返します。文字セット名を引数として渡すと、そのIDが返されます。

    構文

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

    NLS_CHARSET_ID(string)

    stringの場所 IDを返す文字セット名です。

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

    SELECT NLS_CHARSET_ID('AL16UTF16')
    FROM DUAL;

    結果:

    2000

    これは別の文字セットです:

    SELECT NLS_CHARSET_ID('UTF8')
    FROM DUAL;

    結果:

    871

    ヌル引数

    引数がnullの場合 、結果はnullです :

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

    結果:

       NLS_CHARSET_ID(NULL) 
    _______________________ 
                       null

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

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

    無効な文字セット名

    無効な文字セット名を渡すと、nullになります :

    SET NULL 'null';
    SELECT NLS_CHARSET_ID('oops')
    FROM DUAL;

    結果:

       NLS_CHARSET_ID('OOPS') 
    _________________________ 
                         null 

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

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

    SELECT NLS_CHARSET_ID()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_CHARSET_ID()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00938: not enough arguments for function
    00938. 00000 -  "not enough arguments for function"
    *Cause:    
    *Action:

    ただし、複数の文字セット名を渡すと、最初の文字セットのIDが返されます:

    SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
    FROM DUAL;

    結果:

    871

    1. 日付を列として動的にピボットする方法

    2. SQLite自己参加

    3. PostgreSQL11を使用したデータのシャーディング

    4. Visual Studio:ContextSwitchDeadlock