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