为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle的函数vsize和length的区别讨论?

Oracle的函数vsize和length的区别讨论?

HUH函数 2018-11-14 19:15:19
Oracle的函数vsize和length的区别讨论
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

其实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。



查看完整回答
反对 回复 2018-12-07
  • 1 回答
  • 0 关注
  • 632 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信