VSIZE
VSIZE関数は、式の内部表現でのバイト数を返します。
SQL構文
VSIZE(Expression)パラメータ
VSIZEには次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
|
|
|
説明
-
式の値が
NULLの場合は、NULLが返されます。それ以外の場合、返されるデータ型はNUMBERです。 -
VSIZE関数は、LOBデータを直接サポートしません。ただし、LOBを暗黙的なデータ変換を介して引数として渡すことはできます。
例
部門10の従業員のlast_name列のバイト数を返すには、VSIZE関数を使用します。
Command> SELECT last_name, VSIZE (last_name) "BYTES" FROM employees
WHERE department_id = 10 ORDER BY employee_id;
< Whalen, 6 >
1 row found.
この例では、CLOBデータ型で定義された列にVSIZE関数を使用する方法を示しています。この例では、最初に、VARCHAR2(200)データ型で定義されたcol1列を持つvsize_varchar2表を作成します。次に、CLOBデータ型で定義されたcol1列を持つvsize_clob表を作成します。同じ文字列が各表のcol1に挿入されます。次に、VSIZE関数を使用して、col1のデータの内部表現でのバイト数を返します。vsize_clob表に対してCAST関数を使用して、CLOBデータ型をVARCHAR2(200)データ型col1列にキャストします。前述のように、VSIZE関数は、vsize_varchar2表に対する問合せに対してvsize_clob表に対する場合と同じ同じ結果を返します。
Command> CREATE TABLE vsize_varchar2 (col1 VARCHAR2 (200));
Command> CREATE TABLE vsize_clob (col1 CLOB);
Command> INSERT INTO vsize_varchar2 VALUES ('This is a test to illustrate how to
use the VSIZE function on a column defined with the CLOB
data type');
1 row inserted.
Command> INSERT INTO vsize_clob VALUES ('This is a test to illustrate how to
use the VSIZE function on a column defined with the CLOB
data type');
1 row inserted.
Command> SELECT VSIZE (col1) FROM vsize_varchar2;
< 102 >
1 row found.
Command> SELECT VSIZE (CAST (col1 AS VARCHAR2 (200))) FROM vsize_clob;
< 102 >
1 row found.
この例は、LENGTH関数とVSIZE関数の違いを示しています。LENGTH関数は、SYSDATEの長さを返します。VSIZE関数は、SYSDATEの内部表現でのバイト数を返します。
Command> SELECT SYSDATE FROM dual; < 2021-03-07 10:47:40 > 1 row found. Command> SELECT LENGTH (SYSDATE) FROM dual; < 19 > 1 row found. Command> SELECT VSIZE (SYSDATE) FROM dual; < 7 > 1 row found.