oracle中vsize和length

其实LENGTH与VSIZE这两个函数联系不大,区别很大。虽然都是“取长度”,但是LENGTH函数结果是“有多少个字符”,VSIZE结果是“需要多少bytes”。
简单看一下这两个函数

1.创建表T并初始化三条数据

sec@ora10g>

create table t (x varchar2(10));
sec@ora10g> insert into t values ('H');

sec@ora10g> insert into t values ('侯');

sec@ora10g> insert into t values ('H侯');

sec@ora10g> commit;

2.查看表T中的数据
sec@ora10g> select * from t;
X

----------
H

H侯
3.比较LENGTH和VSIZE两个函数的结果

sec@ora10g> col x for a10

sec@ora10g> col DUMP(X) for a30

sec@ora10g> select x, length(x), vsize(x), dump (x) from t;

X LENGTH(X) VSIZE(X) DUMP(X)

---------- ---------- ---------- ------------------------------
H 1 1 Typ=1 Len=1: 72
侯 1 3 Typ=1 Len=3: 228,190,175
H侯 2 4 Typ=1 Len=4: 72,228,190,175

4.结论

“H”包含1个字符,长度是1 byte;
“侯”包含1个字符,长度是3 bytes;
“H侯”包含2个字符,长度是4 bytes。


转自 : https://zhidao.baidu.com/question/1177251446363924539.html
原文地址:https://www.cnblogs.com/wangqianqiannb/p/8072736.html