资讯详情

Oracle 内置函数三

?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@]

标签: g520三极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台