Oracle 内置函数一

Ø ABS

ABS函数返回一数值的绝对值。

Ø ACOS

ACOS函数返回一数值的反余弦值。结果以弧度表示,且在0PI之间。

其语法格式如下:

ACOS(number)

其中,number必须是-11之间的值,如果超出则报异常

下面的例子显示了1-1 的反余弦值:

ACOS(1)=0

ACOS(-1)=3.1415927(PI)

Ø ADD_MONTHS

如果,结果月份的天数比开始月份的天数少,那么,也会向回调整以适应有效日期。

SQL> SELECT SYSDATE,ADD_MONTHS(SYSDATE,2),ADD_MONTHS(SYSDATE,4) FROM DUAL;

SYSDATE ADD_MONTHS(SYSDATE,2) ADD_MONTHS(SYSDATE,4)

----------- --------------------- ---------------------

2010-10-31 2010-12-31 19:06:59 2011-2-28 19:06:59

Ø ASCII

SQL> SELECT ASCII('T'),ASCII('TANGYUN') FROM DUAL;

ASCII('T') ASCII('TANGYUN')

---------- ----------------

84 84

如果指定了一个多字符串,该函数将忽略除首字母外的所有字符。

Ø ASCIISTR

用于任意字符集的字符串转换为数据库字符集的ASCII字符串。

SQL> SELECT ASCIISTR('汤云'),ASCIISTR('TANGYUN'),ASCII('TANGYUN'),ASCII('T') FROM DUAL;

ASCIISTR('汤云') ASCIISTR('TANGYUN') ASCII('TANGYUN') ASCII('T')

---------------- ------------------- ---------------- ----------

6C644E91 TANGYUN 84 84

Ø ASIN

ASIN函数返回一数值的反正弦值。结果以弧度表示,且在-PI/2PI/2之间。

其语法格式如下:

ASIN(number)

其中:number必须是-11之间的值,如果超出则报异常

下面的例子显示了1-1的反正弦值:

ASIN(1)= 1.57079632

ASIN(-1)=-1.57079632

Ø ATAN

ATAN函数返回一数值的反正切值。结果以弧度表示,且在-PI/2PI/2之间。

其语法格式如下:

ATAN(number)

其中:number必须是-11之间的值,如果超出则报异常

下面的例子显示了1-1 的反正切值:

ATAN(1)= 0.78539816

ATAN(-1)=- 0.78539816

Ø ATAN2

ATAN2函数返回两个数值的反正切值。结果以弧度表示。

其语法格式如下:

ATAN2first,second)

其中:

first 第一个数

second 第二个数

下面的例子显示了1-1的反正切值:

ATAN2(1,.5)= 1.107148717

Ø BIN_TO_NUM

BIN_TO_NUM(EXPR1,EXPR2,EXPR3,….)用于将位向量值转换为实际的数值。EXPRn其实就是0或者1,有几个表达式就是第一位就是2的多少次幂。

SQL> SELECT BIN_TO_NUM(0,0,0,0,1) FROM DUAL;

BIN_TO_NUM(0,0,0,0,1)

---------------------

1

SQL> SELECT BIN_TO_NUM(0,0,0,1,1) FROM DUAL;

BIN_TO_NUM(0,0,0,1,1)

---------------------

3

SQL> SELECT BIN_TO_NUM(0,0,1,1,1) FROM DUAL;

BIN_TO_NUM(0,0,1,1,1)

---------------------

7

SQL> SELECT BIN_TO_NUM(0,1,1,1,1) FROM DUAL;

BIN_TO_NUM(0,1,1,1,1)

---------------------

15

SQL> SELECT BIN_TO_NUM(1,1,1,1,1) FROM DUAL;

BIN_TO_NUM(1,1,1,1,1)

---------------------

31

SQL> SELECT BIN_TO_NUM(1,1,1,1,1,1) FROM DUAL;

BIN_TO_NUM(1,1,1,1,1,1)

-----------------------

63

Ø BFILENAME

BFILENAME函数返回一指向磁盘的物理文件的BFILE地址。

其语法格式如下:

BFILENAME(directory,filename)

其中:directory 一个包括指定文件的目录路径字符串。该目录通过命令CREATE DIRECTORY产生。但它不是一个操作系统目录filename指定目录中用户试图指定的文件名字。该文件可以是预先不存在的文件

下面的例子解释了BFILENAME函数的使用情况:

BFILENAME(‘gif_dir’,’book_photo.gif’)

Ø CAST

CAST(EXPR AS TYPE)该函数用于将一个内置数据类型或者集合类型转换成另外一个内置数据类型或者集合类型。

SQL> SELECT CAST('12.12' AS INTEGER) FROM DUAL;

CAST('12.12'ASINTEGER)

---------------------------------------

12

SQL> SELECT CAST(12.12 AS NUMBER(10,0)) FROM DUAL;

CAST(12.12ASNUMBER(10,0))

-------------------------

12

Ø CEIL

返回结果是大于等于输入参数的最小整数。

SQL> SELECT CEIL(-5.999999999) FROM DUAL;

CEIL(-5.999999999)

------------------

-5

Ø CHARTOROWID

CHARTOROWID函数将一个字符串转换成rowid类型。

其语法格式如下:

CHARTOROWID(string)

其中:string 待处理的字符串。该字符串应该能表示一个有效的rowid型数据

下面的例子解释了CHARTOROWID函数的使用情况:

SQL> SELECT ROWID FROM DUAL;

ROWID

------------------

AAAAECAABAAAAgiAAA

SQL> SELECT CHARTOROWID('AAAAECAABAAAAgiAAA') "ROWID" FROM DUAL;

ROWID

------------------

AAAAECAABAAAAgiAAA

Ø CHR

CHR函数就相应的数据库字符集,返回一个指定数值相应的字符。例如,给定一个ASCII值,使用CHR函数返回该数值表示的字符。

SQL> SELECT CHR(10),CHR(65) FROM DUAL;

CHR(10) CHR(65)

------- -------

A

这里的CHR(10) 是一个Tab键。

Ø COALESCE

返回参数中的第一个非空表达式。如果所有的参数表达式都是空值,最终将返回一个空值。

SQL> SELECT COALESCE(NULL,NULL,NULL,3) FROM DUAL;

COALESCE(NULL,NULL,NULL,3)

--------------------------

3

SQL> SELECT NVL(NULL,'a') FROM DUAL;

NVL(NULL,'A')

-------------

A

Ø COMPOSE

COMPOSE(string)用于将输入字符串转换为UNICODE字符串值。

SQL> SELECT COMPOSE(UNISTR('308')) FROM DUAL;

COMPOSE(UNISTR('308'))

------------------------

̈

SQL> SELECT COMPOSE('汤云'||UNISTR('308')) FROM DUAL;

COMPOSE('汤云'||UNISTR('308'

------------------------------

汤云̈

SQL> SELECT COMPOSE('汤云'||UNISTR('191')) FROM DUAL;

COMPOSE('汤云'||UNISTR('191'

------------------------------

汤云Ƒ

SQL> SELECT UNISTR('191') FROM DUAL;

UNISTR('191')

---------------

Ƒ

Ø CONCAT

CONCAT函数将两个输入字符串,组合成一个,并返回结果。与“||”完全相同。

SQL> SELECT CONCAT('TANG','YUN') FROM DUAL;

CONCAT('TANG','YUN')

--------------------

TANGYUN

Ø CONVERT

CONVERT函数把一字符串从一个字符集转换到另一字符集。

Ø COS

COS函数返回一角度的余弦值。结果为弧度值。

其语法格式如下:

COS(angle)

其中:angle 角度值,用弧度表示

下面的例子解释了COS函数的使用情况:

SQL> SELECT ROUND(COS(90*3.14/180),6) FROM DUAL;

ROUND(COS(90*3.14/180),6)

-------------------------

0.000796

SQL> SELECT COS(0) FROM DUAL;

COS(0)

----------

1

Ø COSH

COSH函数返回一角度的双曲余弦值。

其语法格式如下:

COSH(angle)

其中:

angle 角度值,以弧度表示

下面的例子解释了COSH函数的使用情况:

COSH(0)=1

COSH(90*3.14/180)=2.507

将角度值转化成弧度值,可以参考COS函数的有关部门信息

Ø CURRENT_DATE

该函数是Oracle9i新增的函数,用于返回当前会话时区所对应的日期时间。

Ø CURRENT_TIMESTAMP

该函数是Oracle9i新增的函数,用于返回当前会话时区所对应的日期时间。

Ø DBTIMESONE

该函数是Oracle9i新增的函数,用于返回数据库所在的时区。

Ø DECODE

SQL> SELECT DECODE(DUMMY,'Y','YES','N','NO','NONE') "DUMMY1",DECODE(DUMMY,'Y','YES','X','NO','NONE') "DUMMY2" FROM DUAL;

DUMMY1 DUMMY2

------ ------

NONE NO

SQL>SELECT TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),

2 COUNT(*)

3 FROM AQUATIC_ANIMAL

4 WHERE TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’)

5 IN(‘1995’,’1996’,’1997’)

6 GROUP BY TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’);

TO_C COUNT(*)

--- -------

1995 1

1996 3

1997 1

SQL>SELECT SUM(

DECODE(TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),’1995’,1,0))BORN_1995

SUM(DECODE(TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),’1996’,1,0))BORN_1996 SUM(DECODE(TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),’1997’,1,0))BORN_1997

FROM AQUATIC_ANIMAL

WHERE TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’)

IN(‘1995’,’1996’,’1997’)

BORN_1995 BORN_1996 BORN_1997

----- ----- -----

1 3 1

Ø DECOPME

用于分解字符串并返回相应的UNICODE字符串,与COMPOSE对应。

Ø DEPTH(n)

用于返回XML解决方案中的UNDER_PATH路径对应的层数。n用于指定相对的层数。

DUMP(EXPR,RETURN_FMT)

用于返回表达式的数据类型代码、长度以及内部表示格式。Return_fmt用于指定返回格式(8:八进制符号,10:十进制符号,16:十六进制符号,17:单个字符),只能在SQL语句中使用。

SQL> SELECT DUMP('TANGYUN',1016) FROM DUAL;

DUMP('TANGYUN',1016)

--------------------------------------------------------

Typ=96 Len=7 CharacterSet=ZHS16GBK: 54,41,4e,47,59,55,4e

SQL> SELECT DUMP('TANGYUN',1017) FROM DUAL;

DUMP('TANGYUN',1017)

-------------------------------------------------

Typ=96 Len=7 CharacterSet=ZHS16GBK: T,A,N,G,Y,U,N

SQL> SELECT DUMP('TANGYUN',0817) FROM DUAL;

DUMP('TANGYUN',0817)

---------------------------

Typ=96 Len=7: T,A,N,G,Y,U,N

Ø EMPTY_BLOB/ EMPTY_CLOB

EMPTY_BLOB函数返回一空的BLOB指针,该指针可以用在INSERTUPDATE命令中,以初始化BLOB列项。

其具体的语法格式如下:

EMPTY_BLOB()

该函数没有参数。下面的例子说明了如何使用该函数初始化BLOB列,并作为一个新行插入到表中。

INSERT INTO some_table

(blob_column)

VALUE(EMPTY_BLOB());

Ø EXP

EXP函数返回e的一个幂。

SQL> SELECT EXP(2),EXP(3) FROM DUAL;

EXP(2) EXP(3)

---------- ----------

7.38905609 20.0855369

Ø EXTRACT

该函数是Oracle9i新增的函数,用于从日期中取得所需的特定数据(如:年、月、日等)。

SQL> SELECT EXTRACT(DAY FROM SYSDATE),EXTRACT(YEAR FROM SYSDATE) FROM DUAL;

EXTRACT(DAYFROMSYSDATE) EXTRACT(YEARFROMSYSDATE)

----------------------- ------------------------

16 2010

Ø EXTRACT(XMLTYPE_INSTANCE,XPATH_STRING)

返回XML节点下的相应内容。

Ø EXTRACTVALUE(XMLTYPE_INSTANCE,XPATH_STRING)

返回XML节点路径下的值。

Ø FLOOR

FLOOR函数返回一个小于或等于给定十进制数的最大整数。

SQL> SELECT FLOOR(-5.99999999),FLOOR(-5.0000001) FROM DUAL;

FLOOR(-5.99999999) FLOOR(-5.0000001)

------------------ -----------------

-6 -6

Ø GREATEST

GREATEST函数返回一数值列表中的最高数值。可使用GREATEST函数处理数字数据和字符数据。

这里需要注意的是以第一个参数来判断参数是字符型还是数值型。

SQL> SELECT GREATEST('12',102,-12,0,'-15') FROM DUAL;

GREATEST('12',102,-12,0,'-15')

------------------------------

12

SQL> SELECT GREATEST(12,'102',-12,0,'-15') FROM DUAL;

GREATEST(12,'102',-12,0,'-15')

------------------------------

102

Ø HEXTORAW

函数HEXTORAW将一个由十六进制字符组成的字符串转换成一个raw数值。

其具体的语法格式如下:

HEXTORAWstring

其中:

string 十六进制字符组成的字符串数据

SQL>CREATE TABLE xx (y raw(10));

Table created.

SQL>INSERT INTO xx VALUES(HEXTORAW(‘414243’));

1 row created.

AQL>SELECT DUMP(y) FROM xx;

DUMP(Y)

------------------------

Typ=23 Len=3:65,66,67

注意:在调用函数时,raw项中的数值是精确表示的(十进制数65=十六进制数41

Ø INITCAP

INITCAP函数接收一字符串,并转换该字符串中的所有单词,以使各单词均以大写字母开头。

SQL> SELECT INITCAP('This is a teST') FROM DUAL;

INITCAP('THISISATEST')

----------------------

This Is A Test

Ø INSTR/INSTRB

INSTR(string,substring[,start[,occurrence]])

INSTR函数返回字符或者字符串的位置,找不到则返回0occurrence参数指定第几

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24930246/viewspace-1041573/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24930246/viewspace-1041573/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值