Oracleでは、NLS_CHARSET_DECL_LEN()
関数は、NCHAR
の宣言の長さ(文字数)を返します 列。
構文
構文は次のようになります:
NLS_CHARSET_DECL_LEN(byte_count, char_set_id)
byte_count
の場所 列の幅であり、 char_set_id
列の文字セットIDです。
例
基本的な例は次のとおりです。
SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;
結果:
100
これは別の文字セットIDです:
SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;
結果:
50
文字セットIDを取得する
NLS_CHARSET_ID()
を使用できます 指定された文字セットの文字セットIDを返す関数:
例:
SELECT NLS_CHARSET_DECL_LEN(
100,
NLS_CHARSET_ID('AL16UTF16')
)
FROM DUAL;
結果:
50
ヌル引数
引数がnull
の場合 、結果はnull
です :
SET NULL 'null';
SELECT
NLS_CHARSET_DECL_LEN(null, 1) AS r1,
NLS_CHARSET_DECL_LEN(100, null) AS r2
FROM DUAL;
結果:
R1 R2 _______ _______ null null
デフォルトでは、SQLclおよびSQL * Plusは、null
の場合は常に空白を返します。 SQL SELECT
の結果として発生します 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
引数の数が正しくありません
引数を渡さずに関数を呼び出すと、エラーが発生します:
SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
また、あまりにも多くの引数を渡すと、エラーが発生します:
SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN(100, 1, 2) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: