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

OracleのNLS_CHARSET_NAME()関数

    Oracle Databaseでは、NLS_CHARSET_NAME() 関数は、IDに基づいて、指定された文字セットの文字セット名を返します。文字セットIDを引数として渡すと、関数はその名前を返します。

    構文

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

    NLS_CHARSET_NAME(number)

    number 名前を返す文字セットIDです。

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

    SELECT NLS_CHARSET_NAME(1)
    FROM DUAL;

    結果:

    US7ASCII

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

    SELECT NLS_CHARSET_NAME(871)
    FROM DUAL;

    結果:

    UTF8

    ヌル引数

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

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

    結果:

    null

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

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

    無効な文字セットID

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

    SET NULL 'null';
    SELECT NLS_CHARSET_NAME(19999)
    FROM DUAL;

    結果:

    null

    ただし、間違ったデータ型を渡すとエラーが返されます:

    SELECT NLS_CHARSET_NAME('oops')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_CHARSET_NAME('oops')
    FROM DUAL
    Error report -
    ORA-01722: invalid number

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

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

    SELECT NLS_CHARSET_NAME()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_CHARSET_NAME()
    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を渡すと、最初のIDの名前が返されます:

    SELECT NLS_CHARSET_NAME(871, 1)
    FROM DUAL;

    結果:

    UTF8

    1. SQLAlchemy:JSONBフィールドのネストされたリストに格納されている値のフィルタリング

    2. PostgreSQLでの日付、時刻、間隔の表現

    3. DBeaverを介してPostgreSQLデータベースをバックアップおよび復元する方法

    4. postgresでデータベースを切り替える方法は?