• 如何使用oracle数据库的length()、lengthb()、replace()、regexp_substr()函数


    1. length()、lengthb()
    • lengthb(string)获取string所占的字节长度,返回字符串的长度,单位是字节;
    • length(string)获取string所占的字符长度,返回字符串的长度,单位是字符;
    • 对于单字节字符,length()和lengthb()是一样的。
    • 可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。
    -- 一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,当数据格式为UTF8时,一个汉字占用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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    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
    • 2
    • 3
    • 4
    • 5
    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; 
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    9、Neural Sparse Voxel Fields
    vue2 组件化 component标签和api
    【微服务】API治理发展历史与未来趋势
    【LeetCode】一文吃透字典树(附例题)
    当技术人成长为 CEO,应该修改哪些“Bug”?
    前端综合面试题(持续更新)
    Docker Volume: 实现容器间数据共享与持久化的利器
    105道Java面试题
    R与Python:编程语言间的差异与魅力
    项目管理必看书籍
  • 原文地址:https://blog.csdn.net/qq_37432174/article/details/132919821