如何使用oracle数据库的length()、lengthb()、replace()、regexp

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
  1. length()、lengthb()
  • lengthb(string)获取string所占的字节长度返回字符串的长度单位是字节
  • length(string)获取string所占的字符长度返回字符串的长度单位是字符
  • 对于单字节字符,length()和lengthb()是一样的。
  • 可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。
-- 一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关当数据格式为UTF时一个汉字占用3个字节。

--输出3(表示'帅'这个汉字在数据库中一个汉字占3个字节)
select lengthb('帅') from dual; 

--输出9'帅,a,b,c'字节长度是9
select lengthb('帅,a,b,c') from dual;

--输出7'帅,a,b,c'字符长度是7
select length('帅,a,b,c') from dual
  1. replace()
  • replace()函数是用另外一个值来替代串中的某个值。REPLACE ( char, search_string [, replace_string]) 如果没有指定replace_string 变量的值那么当发现search_string 变量的值时就将其删除。
--指定替换值时输出帅?a?b?c指定','替换成‘?’
select replace('帅,a,b,c',',','?') from dual;

--不指定替换值时输出帅abc。不指定时就将被替换值删除
select replace('帅,a,b,c',',') from dual; 
  1. regexp_substr()
  • 在目标字符串中获取符合正则表达式的字符串。
--source_char目标字符串
--pattern正则表达式
--position可选搜索开始位置默认为1
--occurrence可选第n个匹配位置默认为1
--match_parameter可选是取值范围:
  --i大小写不敏感
  --c大小写敏感
  --n点号 . 不匹配换行符号
  --m多行模式
  --x扩展模式忽略正则表达式中的空白字符。

REGEXP_SUBSTR(source_char, pattern [, position [, occurrence [, match_parameter ]]]);

--输出BB 正则表达式意思是以逗号为分割标准
select regexp_substr('帅,aa,BB,cc,','[^,]+',1,3,'c') from dual; 


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle数据库