[转]Oracle 操作字符串的函数
转至:http://yedward.net/?id=62
(1)oracle中实现截取字符串:substr
substr(string, start_position, [length])
其中,string是元字符串,start_position为开始位置,length是可选项,表示子字符串的位数。
例子:
substr('ABCDEFG', 0); -- 返回结果是:ABCDEFG,从0位开始截取后面所有
substr('ABCDEFG', 2); -- 返回结果是:CDEFG,从2位开始截取后面所有
substr('ABCDEFG', 0, 3); -- 返回结果是:ABC,从0位开始往后截取3个字符长度
substr('ABCDEFG', 0, 100); -- 返回结果是:ABCDEFG,虽然100超出了元字符串长度,但是系统会按元字符串最大数量返回,不会影响返回结果
substr('ABCDEFG', -3); -- 返回结果是:EFG,如果是负数,则从尾部往前数,截取-3位置往后的所有字符串
(2)查找字符串位置:instr
instr(string, subString, [start_position, [nth_appearance]])
其中,string是元字符串;subString是要查找的子字符串;start_position是要查找的开始位置,为可选项(默认为1),注意在这里字符串索引从1开始,如果此参数为正,则从左到右检索,如果此参数为负,则从右到左检索;nth_appearance是元字符串中第几次出现的子字符串,此参数可选,缺省默认为1,如果是负数则系统报错。
例子:
instr('ABCDABCDAEF', 'AB'); -- 返回结果是:1,因为instr字符串索引从1开始,所以是1不是0
instr('ABCDABCDAEF', 'DA', 1, 2); -- 返回结果是:8,返回第二次出现'DA'的位置
instr('A BCDABCDAEF', 'DA', 1, 2); -- 返回结果是:9,由于我在元字符串中加了一个空格,空格仍然算一个字符
(3)替换字符串:replace
replace(str1, str2, str3)
其表示的意思是:在str1中查找str2,凡是出现str2的地方,都替换成str3。
replace('ABCDEFG', 'CDE', 'cde'); -- 返回结果是:ABcdeFG
replace('ABCDEFG', 'CDE', ''); -- 返回结果是:ABFG,CDE被替换成空字符
replace('ABCDEFG', 'CDE'); -- 返回结果是:ABFG,当不存在第三个参数时,CDE直接被删掉
本来我还以为oracle中也有系统自带的那种像split这样的拆分字符串的函数,结果找了好久,发现居然没有,网上有很多解决方法,我就不总结在这里了,后面需要的时候视情况来写。
使用示例:
SELECT substr('This is a test', 4, 2) FROM dual //结果为s
update tbl_disease t set t.picture = replace(t.picture, 'DieaseUpload/', 'uploadImg/201603/');
[转]Oracle 操作字符串的函数的更多相关文章
- Python:常见操作字符串的函数
Python中提供了很多操作字符串的函数: string = "hello, my dear python!" string.capitalize() #将字符串中的第一个字母大写 ...
- oracle获取字符串长度函数length()和hengthb()
原文:oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算s ...
- oracle获取字符串长度函数length()和lengthb()
oracle获取字符串长度函数length()和lengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算st ...
- C语言 字符串 字符串处理操作 字符串与函数
字符数组的定义和初始化 宏常量+1 强调了字符串的最大强度 推荐忽略长度的定义 不能对所指向的存储单元内容修改,除非是字符串数组的定义 因为指针变量指向的是字符串数组的值,可以被修改. 未初始化 字 ...
- oracle操作字符串:拼接、替换、截取、查找
1.拼接字符串 1)可以使用“||”来拼接字符串 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现 select concat('拼接', '字 ...
- oracle操作字符串:拼接、替换、截取、查找、长度、判断
1.拼接字符串 1)可以使用“||”来拼接字符串 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现 select concat('拼接', '字 ...
- Oracle 对字符串去重函数
CREATE OR REPLACE FUNCTION ZZMES."REMOVESAMESTR" (oldStr varchar2, sign varchar2) return v ...
- oracle正则截取字符串的函数
现在有这么一个需求, 数据库中的一个手输的'籍贯'字段,要按一定的规范截取显示在报表上,比如,如果'籍贯'的内容是:'山东省潍坊市昌乐县', 那么报表里要显示为:'山东昌乐', 如果'籍贯'是山东省潍 ...
- 获取字符串长度函数length()和hengthb()
oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算stri ...
随机推荐
- ArrayList和List之间的转换
开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: package test.test1; import java.util.ArrayList; import java.util.L ...
- uvaIrrelevant Elements
唯一分解定理. 可以看出在最后每个a的系数是杨辉三角的第n行. 但是不能递推,否则会tle. 就从C(n-1,0)开始乘n-k再除以k.记录下每个的系数,如果该项系数小于m就代表和答案有关. 代码里的 ...
- CodeForces Round #296 Div.2
A. Playing with Paper 如果a是b的整数倍,那么将得到a/b个正方形,否则的话还会另外得到一个(b, a%b)的长方形. 时间复杂度和欧几里得算法一样. #include < ...
- WebServices生成发布过程及常见问题的解决方法
春夏秋冬走健康之路看四季养生网 健康饮食 养生问题 母婴保健 养生小常识 3.下一步,我们需要将Myservice文件夹拷贝到C:\Inetpub\wwwroot目录下(重要).如下图所示 然后依次 ...
- Androidstudio下Generate signed apk提示Error: Expected resource of type id [ResourceType]解决办法
只需要在报错位置所在的类上面添加: @SuppressWarnings("ResourceType") 即可实现Generate signed apk.
- JS调用客户端EXE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- OK335xS dhcpcd porting
/********************************************************************** * OK335xS dhcpcd porting * 说 ...
- 【 D3.js 高级系列 — 7.0 】 标注地点
有时需要告诉用户地图上的一些目标,如果该目标是只需要一个坐标就能表示的,称其为"标注". 1. 标注是什么 标注,是指地图上只需要一个坐标即可表示的元素.例如,在经纬度(116, ...
- jrtplib跨网络通讯NAT穿透问题解决方法
前几篇文章讲了使用jrtplib在Android和pc端进行通讯的方法 在实际项目中,手机端和pc端一般不会在同一个子网内,两者之间联络可能要走路由器之类的NAT(网络地址转换 Network Add ...
- MySQL基础之第8章 视图
8.1.视图简介 视图由数据库中的一个表,视图或多个表,视图导出的虚拟表.其作用是方便用户对数据的操作. 8.2.创建视图必须要有CREATE VIEW 和 SELECT 权限SELECT selec ...