ORACLE 字符串函数用法(转载)
ORACLE 常用字符函数
页内导航
- 1 ASCII(arg1)
- 2 CHR(arg1,[using nchar_cs])
- 3 CONCAT(arg1,arg2)
- 4 INITCAP(arg1)
- 5 INSTR(arg1,to_find,pos,occurrence)
- 6 LENGTH(arg1)
- 7 lower(arg1)
- 8 LPAD(arg1,n,arg3)
- 9 LTRIM(arg1,arg2)
- 10 NLS_INITCAP(arg1,[‘NLS_SORT=x’])
- 11 NLS_LOWER(arg1,[‘NLS_SORT=x’])
- 12 NLSSORT(arg1,[‘NLS_SORT=x’])
- 13 NSL_UPPER(arg1,[‘NLS_SORT=x’])
- 14 REGEXP_INSTR(source,regex,[pos],[occurrence],[return_option],[match])
- 15 REGEXP_REPLACE(source,regex,replace,[pos],[occurrence],[match])
- 16 EGEXP_SUBSTR(source,regex,[pos],[occurrence],[match])
- 17 REPLACE(arg1,search,replace)
- 18 RPAD(arg1,n,arg3)
- 19 RTRIM(arg1,arg2)
- 20 SOUNDEX(arg1)
- 21.SUBSTR(arg1,pos.len)
- 22 TRANSLATE(arg1,match,replace)
- 23 TREAT(expr as [REF] schema.type)
- 24 TRIM([LEADING][TRAILING][BOTH] char FROM source)
ORACLE 常用字符函数
1 ASCII(arg1)
返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符
select ascii('A') from dual;
ASCII('A')
----------
65
2 CHR(arg1,[using nchar_cs])
返回由参数arg1的代码所指定的字符.所返回的字符依赖于oracle所使用的底层字符编码设置.
select chr(65) from dual;
CHR(65)
-------
A
3 CONCAT(arg1,arg2)
返回arg1与arg2的拼接结果.等同于arg1||arg2
select concat('ABC','DEF') from dual;
CONCAT('ABC','DEF')
-------------------
ABCDEF
4 INITCAP(arg1)
将参数arg1转换为每个单词的首字母大写的格式.
select INITCAP('hello world') from dual;
INITCAP('HELLOWORLD')
---------------------
Hello World
5 INSTR(arg1,to_find,pos,occurrence)
在arg1中查找to_find子字符串,并返回一个整数表示它出现的位置.参数pos指定在参数arg1中开始搜索的位置.如果pos为正,则在该数字指定的位置开始搜索.如果pos为负,则在该数字指定的位置开始搜索,但位置指定是从字符串结尾处开始的.并且反向搜索.参数occurrence指定搜索第几次出现的了字符串.
--从左面第1个字符开始搜索,第一次出现ABC的位置
select instr('HABCHABC','ABC',1,1) from dual;
INSTR('HABCHABC','ABC',1,1)
---------------------------
2
--从左面第3个字符开始搜索,第一次出现ABC的位置
select instr('HABCHABC','ABC',3,1) from dual;
INSTR('HABCHABC','ABC',3,1)
---------------------------
6
----从左面第1个字符开始搜索,第二次出现ABC的位置
select instr('HABCHABC','ABC',1,2) from dual;
INSTR('HABCHABC','ABC',1,2)
---------------------------
6
--从右面第1个字符开始搜索,第二次出现ABC的位置
select instr('HABCHABC','ABC',-1,2) from dual;
INSTR('HABCHABC','ABC',-1,2)
----------------------------
2
6 LENGTH(arg1)
返回参数arg1的长度.arg1可以是char,varchar2,nchar,nvarchar2,clob或nclob
select length('abcdefg') from dual;
LENGTH('ABCDEFG')
-----------------
7
7 lower(arg1)
返回参数arg1的小写形式.
select lower('AbCdEfG') from dual;
LOWER('ABCDEFG')
----------------
Abcdefg
8 LPAD(arg1,n,arg3)
返回在arg1左边填充若干个arg3组成长度为n新字符串.如果n小于arg1的长度,则变为 将arg1从左侧截取N字符.
--在ABC前面连续添加Ha直到总长度为10
select lpad('ABC',10,'Ha') from dual;
LPAD('ABC',10,'HA')
-------------------
HaHaHaHABC
select lpad('ABC',2,'Ha') from dual;
LPAD('ABC',2,'HA')
------------------
AB
9 LTRIM(arg1,arg2)
在arg1左面删除连续出现的arg2.不指定arg2则默认删除空格.
select ltrim('AAAASA','A') from dual;
LTRIM('AAAASA','A')
-------------------
SA
select ltrim(' AAA') from dual;
LTRIM('AAA')
------------
AAA
10 NLS_INITCAP(arg1,[‘NLS_SORT=x’])
功能与INITCAP相同,只是可以处理多字符编码的字符.
11 NLS_LOWER(arg1,[‘NLS_SORT=x’])
功能与LOWER相同, 只是可以处理多字符编码的字符.
12 NLSSORT(arg1,[‘NLS_SORT=x’])
允许根据数据库所使用的语言的特定语言要求,对结果进行排序.
13 NSL_UPPER(arg1,[‘NLS_SORT=x’])
与upper功能相同,但是可以处理多字节编码的字符.
14 REGEXP_INSTR(source,regex,[pos],[occurrence],[return_option],[match])
REGEXP_INSTR是一个高版本的INSTR函数. REGEXP_INSTR允许使用与POSIX兼容的正则表达式(POSIX表示可移植的UNIX操作系统接口)搜索字符串.该函数返回一个表示在匹配字符串中位置的整数.如果参数source为LOB类型,则该函数返回一个CLOB.
各参数的说明:
Source---要搜索的源字符串
Regex----所使用的与POSIX兼容的正则表达式.
Pos(可选的)-----描述在字符串中开始搜索的位置的整数.默认值为1,表示从字符串第1个字符开始搜索.
Occurrence(可选的)-----描述执行多少次替换的整数.默认值为0.
Return_options(可选的)----描述匹配字符串的位置的整数.默认值为0,表示让oracle返回匹配字符串的首字母的位置.也可以指定1,让oracel返回匹配字符串之后第1个字母的位置.
Match(可选的)----允许修改正则表达式引擎的默认行为的字符串.有效的字符串是i表示非大小写敏感的匹配;c,表示大小写敏感的匹配;n,它允许句号(.)运算符与换行符匹配;以及m,它将源字符串当作多行处理.
select REGEXP_INSTR('ABC123ABC','[0-9]A') from dual;
REGEXP_INSTR('ABC123ABC','[0-9
------------------------------
6
15 REGEXP_REPLACE(source,regex,replace,[pos],[occurrence],[match])
REGEXP_REPLACE是replace函数的一个高版本. REGEXP_REPLACE允许使用与POSIX兼容的正则表达式搜索源字符串.该函数返回一个varchar2类型的字符串,其中每个匹配的regex被replace参数替换.如果source参数为CLOB类型,则该函数返回CLOB类型.
参数source和replace可以是char,varchar2,nchar,nvarchar2,clob或nclob数据类型,而参数regex可以是char,varchar2,nchar或可包含多达512字节的数据的nvarchar2数据类型.只有oracle10g 才提供该函数
该函数包含以下参数:
Source ----要搜索的源字符串
Regex----所使用的与posix兼容的正则表达式
Replace----当正则表达式匹配时所使用的替换字符串
Pos(可选的)----描述在字符串中开始搜索的位置的整数.默认值为1,表示从字符串第一个字符开始搜索.
Occurrence(可选的)----描述执行多少次替换的数据.默认为0,表示执行所有匹配的替换.
Match(可选的)---- 允许修改正则表达式引擎的默认行为的字符串.有效的字符串是i表示非大小写敏感的匹配;c,表示大小写敏感的匹配;n,它允许句号(.)运算符与换行符匹配;以及m,它将源字符串当作多行处理.
select REGEXP_REPLACE('abc123abc123','[0-9]','#') from dual;
REGEXP_REPLACE('ABC123ABC123',
------------------------------
abc###abc###
16 EGEXP_SUBSTR(source,regex,[pos],[occurrence],[match])
REGEXP_SUBSTR是substr 函数的一个高版本. REGEXP_SUBSTR允许使用与posix兼容的正则表达式搜索源字符串.
该函数包含以下参数:
Source ----要搜索的源字符串
Regex----所使用的与posix兼容的正则表达式
Pos(可选的)----描述在字符串中开始搜索的位置的整数.默认值为1,表示从字符串第一个字符开始搜索.
Occurrence(可选的)----描述执行多少次替换的数据.默认为0,表示执行所有匹配的替换.
Match(可选的)---- 允许修改正则表达式引擎的默认行为的字符串.有效的字符串是i表示非大小写敏感的匹配;c,表示大小写敏感的匹配;n,它允许句号(.)运算符与换行符匹配;以及m,它将源字符串当作多行处理.
select REGEXP_substr('abc133abc456','([0-9]{3})abc([0-9]{3})') from dual;
REGEXP_SUBSTR('ABC133ABC456','
------------------------------
133abc456
17 REPLACE(arg1,search,replace)
该函数用replace 参数替换出现的所有search参数.
select replace('abcdabce','abc','x') from dual;
REPLACE('ABCDABCE','ABC','X')
-----------------------------
Xdxe
18 RPAD(arg1,n,arg3)
在字符串arg1右边连续重复填充arg3直到填充后的字符串总长度到达n为止.
select rpad('thr',5,'ee') from dual;
RPAD('THR',5,'EE')
------------------
Three
如果n的值小于arg1的长度,则从右面截取,相当于substr ()函数进行截取
select rpad('hello',2,'xxx') as rpad,substr('hello',1,2) as substr from dual;
RPAD SUBSTR
---- ------
he he
19 RTRIM(arg1,arg2)
从arg1中删除右侧连续出现的arg2.不指定arg2则默认删除空格.
select rtrim('abcdabcabc','abc') from dual;
RTRIM('ABCDABCABC','ABC')
-------------------------
Abcd
select rtrim('six space ')||';' from dual;
RTRIM('SIXSPACE')||';'
----------------------
six space;
20 SOUNDEX(arg1)
返回arg1的语音学表示.通常用于在某个表中执行搜索,以便查找那些相互之间发音相同但拼写不同的单词.
select soundex('too'),soundex('two') from dual;
SOUNDEX('TOO') SOUNDEX('TWO')
-------------- --------------
T000 T000
21.SUBSTR(arg1,pos.len)
从arg1中指定的位置pos开始向右侧截取指定长度len的子字符串.如果pos为正则从字符串arg1左侧开始计数,如果为负则从字符串右侧开始计数.
如果未指定len,则返回至该字符串从位置pos开始到串尾的子串.
SQL> --从左侧第3位开始向后截取5个字符.
SQL> select substr('1234567890',3,5) from dual;
SUBSTR('1234567890',3,5)
------------------------
34567
--从右侧第3位开始向后截取5个字符.
SQL> select substr('1234567890',-3,5) from dual;
SUBSTR('1234567890',-3,5)
-------------------------
890
--从左侧第3位开始向后截取到字符串尾.
select substr('1234567890',3) from dual;
SUBSTR('1234567890',3)
----------------------
34567890
22 TRANSLATE(arg1,match,replace)
类似于replace函数.差别在于,translate允许一次执行多个字符替换(但只是单个字符的替换).
--将*R替换成#@
select replace('PI*R*2','*R','#@') from dual;
REPLACE('PI*R*2','*R','#')
--------------------------
PI#*2
--将*替换成#,同时R替换成@
select TRANSLATE('PI*R*2','*R','#@') from dual;
TRANSLATE('PI*R*2','*R','#@')
-----------------------------
PI#@#2
23 TREAT(expr as [REF] schema.type)
允许改变expr参数的声明类型.当拥有一种更适合于数据的子类型,并且希望转换为该父类型为更适合的子类型时,该函数可谓得心应手.如果将要引用的REF类型,此时才会使用到可选的REF关键字.
这个函数是从书上抄下来的,暂时没有研究是什么意思,以后再补上。
24 TRIM([LEADING][TRAILING][BOTH] char FROM source)
Trim返回varchar2 类型的字符串,其中前导的、尾随的字符char被从source中剪裁。如果指定leading 则与char匹配的前导字符被剪裁。如果指定trailing,则与char匹配的尾随字符被剪裁。指定both,则字符串的首尾都被剪裁。如果没有给出char则默认为空白。如果只指定source参数,则将从source参数中删除尾随和前导的空白。
--截断串首连续出现的字符1
SELECT TRIM(LEADING '1' FROM '1122332211') FROM DUAL;
TRIM(LEADING'1'FROM'1122332211
------------------------------
22332211
--截断串尾连续出现的字符1
SELECT TRIM(TRAILING '1' FROM '1122332211') FROM DUAL;
TRIM(TRAILING'1'FROM'112233221
------------------------------
11223322
--截断串首和串尾连续出现的字符1
SELECT TRIM(BOTH '1' FROM '1122332211') FROM DUAL;
TRIM(BOTH'1'FROM'1122332211')
-----------------------------
223322
--不指定[LEADING][TRAILING][BOTH]则默认为BOTH
SELECT TRIM('1' FROM '1122332211') FROM DUAL;
TRIM('1'FROM'1122332211')
-------------------------
223322
--只指定参数source则默认为TRIM(BOTH ' ' from source)
SELECT TRIM(BOTH ' ' from ' ! ') as BOTH,TRIM(' ! ') as source FROM DUAL;
BOTH SOURCE
转载于:https://www.cnblogs.com/Kevin1002/p/10921535.html
ORACLE 字符串函数用法(转载)相关推荐
- oracle字符串函数(转)
oracle字符串函数[@more@] ASCII Get The ASCII Value Of A Character ASCII(ch VARCHAR2 CHARACTER SET ANY_CS) ...
- oracle里面substr,Oracle substr函数用法
Oracle substr函数用法 取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [length]): substr(字符串,截取开始位置,截 ...
- mysql怎么拆字符串_MySQL截取和拆分字符串函数用法示例
本文实例讲述了MySQL截取和拆分字符串函数用法.分享给大家供大家参考,具体如下: 首先说截取字符串函数: SUBSTRING(commentid,9) 这个很简单,从第9个字符开始截取到最后.SUB ...
- java split函数的用法,java拆分字符串_java中split拆分字符串函数用法
摘要 腾兴网为您分享:java中split拆分字符串函数用法,中信期货,掌上电力,星球联盟,淘集集等软件知识,以及韩剧精灵,每日英语听力vip,龙卷风收音机,优衣库,中国平煤神马集团协同办公系统,光晕 ...
- mysql截取字符串一部分_MySQL截取和拆分字符串函数用法示例
本文实例讲述了MySQL截取和拆分字符串函数用法.分享给大家供大家参考,具体如下: 首先说截取字符串函数: SUBSTRING(commentid,9) 这个很简单,从第9个字符开始截取到最后.SUB ...
- Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数
Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数 一.概述 1.本文系统的整理了,Oracle中常见的几个函数用法,都是涉及到条件判断分支类的 ...
- Oracle Row_Number()函数用法
Oracle Row_Number()函数用法 需求:一个诊断名称对应多个诊断编码,取出现次数最多的那一个. #succeed WITH tmp AS (SELECT t1."diagnos ...
- [转载]Oracle ltrim() 函数用法
前面有说到过LPAD和RPAD这两个函数用法的文章,今天发现与之相反意义的另外两个函数,那就是LTRIM() RTRIM(). 这次就挑LTRIM() 这一函数来讲讲: 具体的语法格式如下: LTRI ...
- Oracle 字符串函数
Oracle Ascii()函数 在Oracle中,Ascii()函数可以返回代表指定字符的数字值代码,那么Ascii()函数具体该如何实用呢? Ascii()函数语法 ASCII( single_c ...
最新文章
- MSRA的Transformer跨界超越CNN,还解决了计算复杂度难题
- 使用 Python 制作属于自己的 PDF 电子书
- JSON在PHP中的基本应用
- 微软加入Linux基金会共建开源生态,并对谷歌加入.NET社区的举措表示欢迎
- 【学习笔记】网络层——IPv6:地址表示、IPv4的对比、IPv4过渡到IPv6、基本地址类型等
- 为什么Python中称__lt__、__gt__等为“富比较”方法
- 面试官系统精讲Java源码及大厂真题 - 36 从容不迫:重写锁的设计结构和细节
- 【UOJ348】【WC2018】州区划分 状压DP FWT
- 控制服务器系统设计,基于 DNS 技术的顶管机远程控制系统设计与实现
- iis 5.0 不能运行 asp.net 的 原因
- scala中的作用域保护
- win10耳机插入电脑里没有声音的新感想
- php dtu,什么是DTU DTU知识普及基础篇
- VisionPro如何引用VPP?
- activiti学习之pvm篇
- 关于java文件乱码解决
- 数据库故障诊断(Troubleshooting)之性能问题导致的数据库严重故障案例之一
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java智能线上教育mo0l5
- 水水笔-first(04/29)
- b2c 多语言,3个可以让B2C外贸网站更成功的设计
热门文章
- AspNetDB.mdf数据库的建立和使用
- C#里调用带输出参数的存储过程
- Linux系统编程之进程与线程控制原语对比
- 机器学习资源和路线图
- 018_SpringBoot异常处理方式-ExceptionHandle注解处理异常
- 032-element模块
- php连接电脑,PHP_深入理解php的MySQL连接类,无意间在电脑里发现还有这么 - phpStudy...
- 2021-10-20开发计量系统遇到的问题之--1启动mysql--2mybatis谨慎注释--3mybatis返回多表查询结果
- vrish 删除虚机_使用Kvm命令集管理虚拟机
- SpringBoot自动装载