#VSIZE
VSIZE函数返回expr在数据库内部存储时占用的字节数,返回NUMBER类型的数值。
expr
根据expr的类型不同,函数返回的信息不同:
- 固定大小类型:包括数值类型(TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、NUMBER等)、日期时间类型(DATE、TIMESTAMP、TIMESTAMP_TZ、TIMESTAMP_LTZ等)、布尔类型(BOOLEAN)、间隔类型(INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND等),函数将返回对应类型定义时的固定字节数。
- 变长类型:包括CHAR、VARCHAR、NCHAR、NVARCHAR、RAW等,函数将返回实际字节长度。
- BIT类型:函数将返回位数而非字节数。
- XMLTYPE类型:函数将返回内部LOB的字节数。
expr不能为LOB类型(CLOB、BLOB、NCLOB等)、JSON类型。 当expr的值为NULL或空字符串时,函数返回NULL。
示例
-- 数值类型返回固定字节数
SELECT VSIZE(127) r1, VSIZE(3.14) r2 FROM DUAL;
R1 R2
---------- ----------
4 20
-- 字符类型返回实际字节数(UTF8环境下)
SELECT VSIZE('abc') r1, VSIZE('中文') r2 FROM DUAL;
R1 R2
---------- ----------
3 6
-- 布尔类型和NULL值
SELECT VSIZE(TRUE) r1, VSIZE(NULL) r2, VSIZE('') r3 FROM DUAL;
R1 R2 R3
---------- ---------- ----------
1

