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
---- ------
! !

ORACLE 常用字符函数的更多相关文章

  1. oracle常用字符函数

    字符函数: concat:(字符连接函数) --字符连接 select concat('con','cat') from dual; select 'co'||'nc'||'at' from dual ...

  2. Oracle常用的函数

    1.常用的函数分为五大类: 字符函数.数字和日期函数.数字函数.转换函数.混合函数 2.字符函数 字符函数主要用于修改字符列.这些函数接受字符输入,返回字符或数字值.Oracle 提供的一些字符函数如 ...

  3. Oracle常用单行函数(原创)

    前言: 想把单行函数进行一个比较全面的总结,并分享给有需要的人,有不明之处还请多多指教. SQL函数:Oracle的内置函数,包括了单行函数和多行函数,本文重点讲解单行函数.单行函数又可以分为许多类, ...

  4. mysql字符类型总结及常用字符函数

    常用字符串函数: concat(s1,s2,s3..)       连接s1,s2,...sn为一个字符串 INSERT(str,x,y,instr)将字符串str从x位置开始,y个字符串替换为字符串 ...

  5. oracle常用系统函数

    一.字符类函数 字符类函数是专门用于字符处理的函数,处理的对象可以是字符或者字符串常量,也可以是字符类型的列. 1.ASCII(c)和CHR(i) ASCII(c)函数用于返回一个字符的ASCII码, ...

  6. ORACLE 常用日期函数

    1 . add_months(arg1,num) 返回日期arg1加num个月的新日期. select add_months(date'2011-1-1',1) from dual; result:  ...

  7. ORACLE单字符函数的函数

     1.           ASCII(C) 说明:返回C的首字符在ASCII码中相应的十进制 举例: SQL>SELECT ASCII('A') A,ASCII('a') B,ASCII( ...

  8. php 常用字符函数学习

    1.addcslashes 要向字符串中的特定字符添加反斜杠 <?php header('Content-type:text/html;charset=utf8'); $str='are you ...

  9. C语言string.h中常用字符函数介绍

    原文:http://www.cnblogs.com/xuwenmin888/archive/2013/05/03/3057883.html strcpy 函数名: strcpy 功 能: 拷贝一个字符 ...

随机推荐

  1. Json对象与Json字符串互转

    1>jQuery插件支持的转换方式: 复制代码 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成js ...

  2. CentOS 6.6 nginx PHP 配置

    /************************************************************************* * CentOS 6.6 nginx PHP 配置 ...

  3. jquery zclip 复制黏贴功能不能实现

    按照http://www.steamdev.com/zclip/我实现一个简单的zclip test 以下是我的测试code: <!DOCTYPE html> <html> & ...

  4. TC HTB r2q

    HTB: quantum of class 10001 is big. Consider r2q change. 根据HTB的官方文档显示,quantum是在可以“借”的情况下,一次可以“借”多少,并 ...

  5. hdu 5187 zhx's contest

    题目分析如果n=1,答案是1,否则答案是2n−2. 证明:ai肯定是最小的或者最大的.考虑另外的数,如果它们的位置定了的话,那么整个序列是唯一的. 那么ai是最小或者最大分别有2n−1种情况,而整个序 ...

  6. UVa 11714 - Blind Sorting

    题目题意: 有n个不同的数,你可以询问a,b哪个大,会得到答案,然后问最少要几次保证能挑选出最大和第二大的数. 分析: n个数,先以打擂台的方式,两两比较出最大的,n - 1次,然后在由被最大PK下去 ...

  7. 矩阵基本运算的 Python 实现

    from...import与import区别在于import直接导入指定的库,而from....import则是从指定的库中导入指定的模块 import...as则是将import A as B,给予 ...

  8. 【转】SQL Server与Oracle的区别

    转自:http://soft.chinabyte.com/database/255/12258255.shtml SQL Server与Oracle的区别 2012-02-10 00:00 中国IT实 ...

  9. 02java语法基础问题总结

    S和t引用的不是同一个对象 不是原始数据类型 结论: 枚举类型是引用类型,枚举不属于原始数据类型.它的每一个具体值都引用一个特定的对象. 2. 以下代码的输出结果是什么? int X=100; int ...

  10. leetcode 153. Find Minimum in Rotated Sorted Array --------- java

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...