社区
基础和管理
帖子详情
搞不懂了:谁能帮忙解释一下oracle中的 lengthb ?
gaojianbin1313
2007-07-16 10:57:08
在我的机子上执行:
select lengthb('新') from dual
结果是:3
执行
select lengthb('新人') from dual
结果是:6
对于这样的结果很不解 ,我查询资料说lengthb方法是求的字节长度,
应该是2才对!
请高手指点~~~~~~
...全文
250
7
打赏
收藏
搞不懂了:谁能帮忙解释一下oracle中的 lengthb ?
在我的机子上执行: select lengthb('新') from dual 结果是:3 执行 select lengthb('新人') from dual 结果是:6 对于这样的结果很不解 ,我查询资料说lengthb方法是求的字节长度, 应该是2才对! 请高手指点~~~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gelyon
2010-11-01
打赏
举报
回复
这根你系统设置有关,一个中文占几个字节。。。
一般是一个中文字占三个字节
lengthb()算的就是字节长度
wangt1103
2010-11-01
打赏
举报
回复
你的那第一个好像有个半角空格吧。
wangchao1982
2007-12-19
打赏
举报
回复
字符集这种东西最可恨了.
wangchao1982
2007-12-19
打赏
举报
回复
应该是 4 和6才对
临摹
2007-07-16
打赏
举报
回复
数据库字符集的问题utf-8的中文字符占用3个字节,gbk的中占2个字节
gaojianbin1313
2007-07-16
打赏
举报
回复
天啊 怎么会这样?
我更加疑惑了!
和系统有关系?我的系统现在是windowsxp 专业英文版,有关系吗?
WangZWang
2007-07-16
打赏
举报
回复
--我的机子上执行等于 4 ,是求字节的长度
select lengthb('新人') as len from dual
Len
----
4
oracle
中
length
、
length
b、substr、substrb函数用法介绍
主要介绍了
oracle
中
length
、
length
b、substr、substrb函数用法的相关内容,具有一定参考价值,需要的朋友可以参考下。
oracle
求字符串长度函数
length
()和hengthb()简介
length
b(string)计算string所占的字节长度:返回字符串的长度,单位是字节
length
(string)计算string所占的字符长度:返回字符串的长度,单位是字符 对于单字节字符,
LENGTH
B和
LENGTH
是一样的. 如可以用
length
(‘string’)=
length
b(‘string’)判断字符串是否含有
中
文。 注: 一个汉字在
Oracle
数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。 select
length
b(‘飘’) from dual 可查询汉字在
Oracle
数据库里占多少字节 以上就是本文关于
Oracle
求字符串长度函数le
Oracle
汉字转全拼 拼音首字母
--此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。 create or replace function f_getFirstOrFullSpell(p_cnStr In varchar2,p_sign In number default null) return varchar2 as lv_spell varchar2(200); lv_temp Varchar2(10); lv_char varchar2(10); --lv_bytes varchar2(100); li_bytes Integer; --li_pos Integer; begin if p_cnStr is null then return ''; end if; for i In 1..
length
(p_cnStr) loop lv_char:=substr(p_cnStr,i,1); if
length
b(lv_char) = 1 then lv_spell:=lv_spell||lv_char; elsif
length
b(lv_char) = 2 then --Select replace(substrb(dump(lv_char,1010),instrb(dump(lv_char,1010),'ZHS16GBK:')),'ZHS16GBK: ','') Into lv_bytes from dual; --li_pos:=instr(lv_bytes,','); --li_bytes:=substr(lv_bytes,1,li_pos-1)*256+substr(lv_bytes,li_pos+1)-256*256; Select ascii(lv_char)-256*256 Into li_bytes From dual; select max(spell) Into lv_temp from table(f_getSpellcode) where code<=li_bytes; if p_sign is null then lv_spell:=lv_spell||substr(lv_temp,1,1); else lv_spell:=lv_spell||lv_temp; end if; elsif
length
b(lv_char) = 3 then --Select replace(substrb(dump(convert(lv_char,'ZHS16GBK','UTF8'),1010),instrb(dump(convert(lv_char,'ZHS16GBK','UTF8'),1010),'UTF8:')),'UTF8: ','') --Into lv_bytes from dual; --li_pos:=instr(lv_bytes,','); --li_bytes:=substr(lv_bytes,1,li_pos-1)*256+substr(lv_bytes,li_pos+1)-256*256; Select ascii(lv_char)-256*256 Into li_bytes From dual; select max(spell) Into lv_temp from table(f_getSpellcode) where code<=li_bytes; if p_sign is null then lv_spell:=lv_spell||substr(lv_char,1,1); else lv_spell:=lv_spell||lv_char; end if; end if; end loop; return lv_spell; end; --hanjs,07-10-24,此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。
Oracle
截取字符串去掉字段末尾指定长度的字符
length
b(string)计算string所占的字节长度:返回字符串的长度,单位是字节
length
(string)计算string所占的字符长度:返回字符串的长度,单位是字符 eg: //去掉该字段后面15位字符串 select t.depre_name, substr(t.depre_name, 0, (
length
(t.depre_name) - 16)) from table t where t.del_flag = '0' 【备注】一个汉字在
Oracle
数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三 PS:
oracle
去掉字符串
中
所有指定字符 Selec
Oracle
Translate 统计字符出现的次数示例代码
特殊用法:统计字符串
中
E 出现的次数: SELECT
LENGTH
B(TRANSLATE('ABCDEFGEFGDBE','E'||'ABCDEFGEFGDBE','E')) FROM DUAL; 等同于: SELECT
LENGTH
B('ABCDEFGEFGDBE')-
LENGTH
B(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL; Translate 的用法 一、语法: TRANSLATE(string,from_str,to_str) 二、目的 返回将(所有出现的)from_str
中
的每个字符替换为to_str
中
的相应字符以后的stri
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章