データベースに格納される形式のバイト数、内部表現のバイトサイズを求める
VSIZE ( expr )
return [ number ]
- データベース格納可能なデータの式 exprの内部表現におけるバイト長を戻す。
- SQL、埋め込みSQL で使用可能、PL/SQL に組み込まれていない。(Oracle 10g R2 時点)
VSIZE 関数の内容
データベース格納可能なデータの式 expr の内部表現でのバイト数を戻す。現行のデータベース内の項目長、データ分析などに使う。
PL/SQL の関数としては利用できない。
VSIZE 使用例
SQL> select VSIZE(1) from dual;
VSIZE(1)
----------
2
SQL> select VSIZE(12345678901234567890123456789012345678) from dual;
VSIZE(12345678901234567890123456789012345678)
---------------------------------------------
20
負の場合には NUMBER 型はサイズが 1 バイト増加する
SQL> select VSIZE(-12345678901234567890123456789012345678) from dual;
VSIZE(-12345678901234567890123456789012345678)
----------------------------------------------
21
日付型とタイムスタンプ型
SQL> select VSIZE(DATE '2000-01-01') from dual;
VSIZE(DATE'2000-01-01')
-----------------------
7
SQL> select VSIZE(TIMESTAMP '2000-01-01 12:34:59') from dual;
VSIZE(TIMESTAMP'2000-01-0112:34:59')
------------------------------------
7
SQL> select VSIZE(TIMESTAMP '2000-01-01 12:34:59.999') from dual;
VSIZE(TIMESTAMP'2000-01-0112:34:59.999')
----------------------------------------
11
文字型 LENGTHB と同じ結果になる。
SQL> select VSIZE('あ'), dump('あ', 1017) from dual;
VSIZE('あ') DUMP('あ',1017)
----------- ------------------------------------------------
2 Typ=96 Len=2 CharacterSet=JA16SJISTILDE: 82,a0
SQL 関数 - VSIZE 関連