日期:2014-05-16  浏览次数:20552 次

Oracle 函数(处理String)

1.CONCAT
连接两个字符串;
SQL> select concat('010-','88888888')||'转23'? 高乾竞电话 from dual;

高乾竞电话
----------------
010-88888888转23

?

2.LENGTH
返回字符串的长度;
SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;

NAME?? LENGTH(NAME) ADDR???????????? LENGTH(ADDR)?????? SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ --------- --------------------
高乾竞??????????? 3 北京市海锭区??????????????? 6?? 9999.99??????????????????? 7

?

3.LTRIM和RTRIM
LTRIM? 删除左边出现的字符串
RTRIM? 删除右边出现的字符串
SQL> select ltrim(rtrim('?? gao qian jing?? ',' '),' ') from dual;

LTRIM(RTRIM('
-------------
gao qian jing

?

4.SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SQL> select substr('13088888888',3,8) from dual;

SUBSTR('
--------
08888888

?

5.REPLACE('string','s1','s2')
string?? 希望被替换的字符或变量
s1?????? 被替换的字符串
s2?????? 要替换的字符串
SQL> select replace('he love you','he','i') from dual;

REPLACE('H
----------
i love you

?

6.TRIM('s' from 'string')
LEADING?? 剪掉前面的字符
TRAILING? 剪掉后面的字符
如果不指定,默认为空格符

?

7.INITCAP
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap('smith') upp from dual;

UPP
-----
Smith

?

8.INSTR(C1,C2,I,J)
一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1??? 被搜索的字符串
C2??? 希望搜索的字符串
I???? 搜索的开始位置,默认为1
J???? 出现的位置,默认为1
SQL> select instr('oracle traning','ra',1,2) instring from dual;

?INSTRING
---------
??????? 9

?

9.LOWER
返回字符串,并将所有的字符小写
SQL> select lower('AaBbCcDd')AaBbCcDd from dual;

AABBCCDD
--------
aabbccdd

?

10.UPPER
返回字符串,并将所有的字符大写
SQL> select upper('AaBbCcDd') upper from dual;

UPPER
--------
AABBCCDD

?

11.TO_CHAR(date,'format')
SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2004/05/09 21:14:41

?

12.CONVERT(c,dset,sset)
将源字符串 sset从一个语言字符集转换到另一个目的dset字符集
SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual;

conver
------
strutz