#VSIZE

vsize
VSIZE ( expr )

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
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流