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