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