Oracle字符串相关知识点归纳

在Oracle几乎全部使用varchar2类型存储字符数据,故本文只用于介绍varchar2类型相关的知识点。

  1. 我们在声明varchar2类型的变量或数据库表字段时,需要指定该变量或字段存储的最大的字符长度。该字符长度有两种定义方式。
    • A varchar(100 CHAR)
    • A varchar(100 BYTE)

第一个定义表示最多容纳100个字符,第二个定义表示最多容纳100个字节。而我们平时一般使用如下方式定义varchar2类型数据:

  • A varchar2(100)
    那么采用这种默认方式,究竟是最多100个字符还是100个字节取决于查询
select value from nls_session_parameters where parameter='NLS_LENGTH_SEMANTICS' 

返回值为CHAR还是BYTE。

  1. 函数CHR和ASCII
    函数CHR用于将ASCII码转化为对应的字符,ASCII函数恰巧相反用于将字符转化为ASCII码
    ASCII字符代码表
select chr(10) from dual;--返回换行符
select ascii('A') from dual;--返回A对应的ASCII码
  1. 函数INITCAP会将单词的首字母变为大写,其余为小写
select initcap('carMen sAParado') from dual;--返回Carmen Saparado
  1. instr和substr函数分别用于检索字符串位置和提取指定位置处的字符。需要注意传入起始位置处参数为负值的情况,对于substr函数而言,如:
    substr(‘helloworld’,-5)
    表示从右数第五个字符开始提取,故结果为world
    对于instr而言,则情况有些特殊,看如下的例子:
  • instr(‘carmen feng’,‘en’,-3,1)->返回值为9,为feng包含的en索引位置
    oracle执行上述函数调用,首先检查右数第三个字符之后的字符是否是我们检索的字符,如’en’,如果是则此为第一次匹配成功的字符串,然后从右数第三个字符开始,按照从右往左,匹配检索的字符。
  1. LPAD,RPAD分别用于从左和右填充字符串使其保证长度固定
select lpad('aaaa',8,'b') from dual;--表示从左边开始填充字符串直到字符串长度等于8,故该语句执行结果为bbbbaaaa

如果遇到字符串的长度大于函数传入的填充后字符串长度参数,则会截取原有字符串,使其字符串长度等于给定的填充后字符串长度参数。

select lpad('abcd',3,'e') from dual;--执行结果为abc
  1. LTRIM,RTRIM分别用于剪切字符串左边开始的和右边开始的,给定字符集中的字符。
select ltrim('afgefgehf','afbe') from dual;--执行该语句会去掉左边开始的字符集中的字符,结果为gefgehf
  1. 字符串中正则表达式用法,参考我的另一篇博文Oracle中与正则表达式相关的函数介绍
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值