ええと、Length()は文字引数(CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、またはNCLOB)を取りますが、VSize()はほぼすべてのデータ型を取ります。したがって、Length()に文字以外のデータ型を渡す場合は、暗黙の変換。
長さも文字セットに影響されます。
drop table daa_test;
create table daa_test as select sysdate dt from dual;
alter session set nls_date_format = 'YYYY-MM-DD';
select vsize(dt) from daa_test;
select length(dt) from daa_test;
alter session set nls_date_format = 'YYYY-MM-DD HH24:mi:ss';
select vsize(dt) from daa_test;
select length(dt) from daa_test;
...与える..。
drop table daa_test succeeded.
create table succeeded.
alter session set succeeded.
VSIZE(DT)
----------------------
7
1 rows selected
LENGTH(DT)
----------------------
10
1 rows selected
alter session set succeeded.
VSIZE(DT)
----------------------
7
1 rows selected
LENGTH(DT)
----------------------
19
1 rows selected
VSizeは、データの内部ストレージ要件を理解する上でIMHOに非常に役立ちます。