VSIZE

VSIZE関数は、式の内部表現でのバイト数を返します。

SQL構文

VSIZE(Expression)

パラメータ

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.