?REGEXP_REPLACE
该函数是Oracle10g新函数,扩展REPLACE该函数用于根据特定的表达式规则替换字符串,即支持正则表达式。
格式:
REGEXP_REPLACE(SOURCE_STRING,PATTEN[,REPLACE_STRING[,POSITION[,OCCURRENCE[,MATCH_PARAMETER]]]])
SQL> SELECT REGEXP_REPLACE('TANG2010YUN||-||tang2012yun','[a-z]','') FROM DUAL;
REGEXP_REPLACE('TANG2010YUN||-
------------------------------
TANG2010YUN||-||2012
SQL> SELECT REGEXP_REPLACE('TANG2010YUN||-||tang2012yun','d','') FROM DUAL;
REGEXP_REPLACE('TANG2010YUN||-
------------------------------
TANGYUN||-||tangyun
SQL> SELECT REGEXP_REPLACE('TANG2010YUN||-||tang2012yun','w','') FROM DUAL;
REGEXP_REPLACE('TANG2010YUN||-
------------------------------
||-||
?REGEXP_SUBSTR
该函数是Oracle10g新函数,扩展REPLACE该函数用于根据特定的表达式规则替换字符串,即支持正则表达式。
格式:
REGEXP_SUBSTR(SOURCE_STRING,PATTEN[,REPLACE_STRING[,POSITION[,OCCURRENCE[,MATCH_PARAMETER]]]])
SQL> SELECT REGEXP_SUBSTR('TANG2010YUN||-||tang2012yun','[a-z].*') FROM DUAL;
REGEXP_SUBSTR('TANG2010YUN||-|
------------------------------
tang2012yun
SQL> SELECT REGEXP_SUBSTR('TANG2010YUN||-||tang2012yun','[a-z]') FROM DUAL;
REGEXP_SUBSTR('TANG2010YUN||-|
------------------------------
T
SQL> SELECT REGEXP_SUBSTR('TANG2010YUN||-||tang2012yun','d{2,}') FROM DUAL;
REGEXP_SUBSTR('TANG2010YUN||-|
------------------------------
2010
?REPLACE
REPLACE在一个字符串中搜索一个指定的子串,并将其替换为另一个指定的子串。
REPLACE(string,substring[,replace_string])
SQL> SELECT REPLACE('TANGYUN121, FROM DUAL;
REPLACE('TANGYUN121,
-----------------------------
TANGYUN1
?ROUND
ROUND函数以第二个参数指定的形式处理一日期(舍入)。
ROUND函数将一个值处理(舍入)成第二个参数指定的十进制数。
SQL> SELECT ROUND(24.9,-1),ROUND(24.4),ROUND(24.45,1) FROM DUAL;
ROUND(24.9,-1) ROUND(24.4) ROUND(24.45,1)
-------------- ----------- --------------
202424.5
?☆ROWIDTOCHAR
ROWIDTOCHAR一行标志码的函数(ROWID)转换成字符串。
具体语法格式如下:
ROWIDTOCHAR(rowid)
其中:rowid一ROWID型数据
以下是该函数的使用情况:
SQL>SELECT ROWIDTOCHAR(ROWID) FROM dual;
ROWIDTOCHAR(ROWID)
----------
AAAADCAABAAAAVUAAA
?RPAD
RPAD函数在字符串后面添加多个字符。
LPAD函数从右侧填充指定的字符串。
SQL> SELECT RPAD('TANGYUN',12,'*') FROM DUAL;
RPAD('TANGYUN',12,'*')
----------------------
TANGYUN*****
?SCN_TO_TIMESTAMP
SCN_TO_TIMESTAMP(number)根据输入SCN返回相应的日期时间。number用于指定SCN值。
?RTRIM
RTRIM函数删除字符串右侧的前缀字符。前缀字符总是空的。
右除右侧的单个字符和单个字符。这里用单个字符匹配,而不是两个字符,但必须在最右边
SQL> SELECT LTRIM('****TANGYUN') "TRIM",LTRIM('***!*!***TANGYUN','*!') "TRIM" FROM DUAL;
SQL> SELECT RTRIM('TANGYUN****') "RTRIM",RTRIM('TANGYUN****','*') "RTRIM",RTRIM('TANGYUN***!*!***','*!') "RTRIM" FROM DUAL;
RTRIMRTRIMRTRIM
----------- ------- -------
TANGYUN**** TANGYUN TANGYUN
?SIGN
SIGN函数返回实参的符号。数返回-1,0返回0,正数返回 1。
SQL> SELECT SIGN(-100),SIGN(0),SIGN(100) FROM DUAL;
SIGN(-100)SIGN(0)SIGN(100)
---------- ---------- ----------
-101
?SIN
SIN函数返回一个角度的正弦值。
具体语法格式如下:
SIN(angle)
其中:
angle待解其正弦的角度。它是一个角度表达式。参考函数COS了解从弧度到角度的转换
SQL> SELECT SIN(90*3.1415926/180),SIN(0) FROM DUAL;
SIN(90*3.1415926/180)SIN(0)
--------------------- ----------
10
?☆SOUNDEX
SOUNDEX函数按以下规则返回字符串的发音描述。
1.保留字符串的首字母
2、删除下面的所有字母:a、e、h、I、o、u、w和y。
3.首字母后面的任何字母按照以下规则匹配一个数字:
b,f,p,v=1
c,g,j,k,q,s,x,z=2
d,t=3
I=4
m,n=5
r=6
4.结果被缩写并转换为4位数字
具体语法格式如下:
SOUNDEX(string)
其中:
string任意字符串
以下是该函数的使用情况:
SQL> SELECT SOUNDEX('Gennick'),SOUNDEX('Genick'),SOUNDEX('Genyk') FROM DUAL;
SOUNDEX('GENNICK') SOUNDEX('GENICK') SOUNDEX('GENYK')
------------------ ----------------- ----------------
G520G520G520
?SQRT
SQRT(n)函数返回一个数字算术平方根。n必须是大于等于0的数字。
SQL> SELECT SQRT(100),SQRT(3) FROM DUAL;
SQRT(100)SQRT(3)
---------- ----------
10 1.73205080
?SUBSTR/ SUBSTRB
SUBSTR返回一个字符串的指定字符串。
SQL> SELECT SUBSTR('ANGYUNyuntang',-4),SUBSTR('TANGYUNyuntang',5) FROM DUAL;
SUBSTR('TANGYUNYUNTANG',-4) SUBSTR('TANGYUNYUNTANG',5)
--------------------------- --------------------------
tangYUNyuntang
ØTAN
TAN函数返回一个角度的正切值。
其具体的语法格式如下:
TAN(angle)
其中:angle用弧度表示。可参考函数COS了解从弧度到角度的转换
SQL> SELECT TAN(225*3.1415926535/180),TAN(0),TAN(1) FROM DUAL;
TAN(225*3.1415926535/180)TAN(0)TAN(1)
------------------------- ---------- ----------
0.9999999997755170 1.55740772
ØTANH
TANH函数返回一个角度的十六进制正切值。TANH(angle)
SQL> SELECT TANH(225*3.1415926535/180),TANH(0) FROM DUAL;
TANH(225*3.1415926535/180)TANH(0)
-------------------------- ----------
0.9992238948784670
ØTIMESTAMP_TO_SCN
TIMESTAMP_TO_SCN(timestamp)用于根据输入的TIMESTAMP值返回对应的SCN值。
SQL> SELECT timestamp_to_scn(SYSDATE-1) FROM DUAL;
TIMESTAMP_TO_SCN(SYSDATE-1)
---------------------------
2689640
ØTO_CHAR
TO_CHAR函数将一个日期型数据转换成一个字符型数据。
TO_CHAR函数将一个数值型数据转换成一个字符型数据。
SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD'),SYSDATE FROM DUAL;
TO_CHAR(SYSDATE,'YYYY-MM-DD') SYSDATE
----------------------------- -----------
2010-10-312010-10-31
ØTO_DATE
TO_DATE函数将一个字符型数据转换成一个日期型数据。
SQL> SELECT TO_DATE('2010-10-31','YYYY-MM-DD'),SYSDATE FROM DUAL;
TO_DATE('2010-10-31','YYYY-MM- SYSDATE
------------------------------ -----------
2010-10-312010-10-31
ØTO_LOB
TO_LOB函数将一个LONG或LONG RAW型数据转换成下列类型:CLOB、BLOB或NCLOB。当仅仅需要在INSERT语句中用LONG型数据代替LOB型数据时,可以使用该函数。
其具体的语法格式如下:
TO_LOB(long_value)
其中:
long_value待转换为CLOB或NCLOB等类型数据的一个LONG或LONG RAW型数据。LONG RAW型数据转换成BLOB型数据
下面是该函数的使用情况:
INSERT INTO new_table(clob_value) SELECT TO_LOB(long_value) FROM old_table;
ØTO_MULTI_BYTE
该函数用于将单字节的字符串变为多字节的字符串。与TO_SINGLE_BYTE对应。
SQL> SELECT TO_MULTI_BYTE('TANGYUN2010'),'TANGYUN2010' FROM DUAL;
TO_MULTI_BYTE('TANGYUN2010') 'TANGYUN2010'
---------------------------- -------------
TANGYUN2010TANGYUN2010
ØTO_NUMBER
TO_NUMBER函数将一字符串转换成一数字。
SQL> SELECT TO_NUMBER('20.10'),TO_NUMBER('20') FROM DUAL;
TO_NUMBER('20.10') TO_NUMBER('20')
------------------ ---------------
20.120
SQL> SELECT TO_NUMBER('$123,456.78','$999,999.99') FROM DUAL;
TO_NUMBER('$123,456.78','$999,
------------------------------
123456.78
ØTO_SINGLE_BYTE
把中文全角字符转换为英文半角。
SQL> SELECT TO_SINGLE_BYTE(',)') FROM DUAL;
TO_SINGLE_BYTE(',)')
----------------------
,)
ØTRANSLATE
替换对应的字符。
SQL> SELECT TRANSLATE('SMITH 20','0123456789','##########') FROM DUAL;
TRANSLATE('SMITH20','012345678
------------------------------
SMITH ##
SQL> SELECT REPLACE(TRANSLATE('SMITH 20','0123456789','##########'),'#','') FROM DUAL;
REPLACE(TRANSLATE('SMITH20','0
------------------------------
SMITH
ØTRIM
TRIM函数将字符串的前缀(或尾随)字符删除。
TRIM([LEADING|TRAILING|BOTH][trimchar FROM] string)
LEADING指明仅仅将字符串的前缀字符删除
TRAILING指明仅仅将字符串的尾随字符删除
BOTH指明既删除前缀字符,也删除尾随字符。这也是默认方式
SQL> SELECT TRIM('Ashley') FROM DUAL;
TRIM('ASHLEY')
--------------
Ashley
SQL> SELECT TRIM(LEADING '*' FROM'***Ashley***') FROM DUAL;
TRIM(LEADING'*'FROM'***ASHLEY*
------------------------------
Ashley***
ØTRUNC
TRUNC函数为指定元素而截去的日期值。
TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
ØUNISTR
用于返回输入字符串的UNICODE字符。
SQL> SELECT UNISTR('0D6') FROM DUAL;
UNISTR('0D6')
---------------
?
ØUID
UID函数返回一个整数值。对于当前数据库用户来它是唯一的。
SQL> SELECT UID FROM DUAL;
UID
----------
56
该数值来源于V$SESSION中的USER#列。
ØUPPER
UPPER函数间返回字符串的大写形式。
SQL> SELECT UPPER('TANgyuN') FROM DUAL;
UPPER('TANGYUN')
----------------
TANGYUN
ØCARDINALITY(nest_table)
用于返回嵌套表的实际元素个数。
ØCOLLECT(column)
用于根据输入的列和被选择的行建立嵌套表结果。
ØPOWERMULTISET(EXPR)
用于生成嵌套表的超集(包括所有非空的嵌套表)。
ØSET(nest_table)
该函数用于取消嵌套表的重复结果,并生成新的嵌套表。[@more@]