Oracle 11g 常用函数(Functions)详解

Oracle 11g 常用函数(Functions)详解

目录

ABS. 3

ACOS. 3

ADD_MONTHS. 4

ASCII 4

ASCIISTR. 5

ASIN.. 5

ATAN.. 5

ATAN2. 5

AVG.. 6

BFILENAME. 6

BIN_TO_NUM... 6

BITAND.. 7

CARDINALITY. 7

CAST. 7

CEIL. 8

CHARTOROWID.. 8

CHR. 9

COALESCE. 9

COMPOSE. 9

CONCAT. 9

CONVERT. 10

CORR. 10

COS. 10

COUNT. 10

CURRENT_DATE. 11

CURRENT_TIMESTAMP. 11

DBTIMEZONE. 12

DECODE. 12

DEREF. 12

DUMP. 13

EXP. 14

EXTRACT (datetime) 14

FLOOR. 15

FROM_TZ. 16

GREATEST. 16

GROUPING.. 16

GROUPING_ID.. 17

HEXTORAW... 17

INITCAP. 18

INSTR. 18

LAST_DAY. 19

LEAST. 19

LENGTH.. 19

LN.. 20

LOCALTIMESTAMP. 20

LOG.. 21

LOWER. 21

LPAD.. 21

LTRIM... 21

MAX. 22

MEDIAN.. 22

MIN.. 22

MOD.. 23

MONTHS_BETWEEN.. 23

NANVL. 23

NEXT_DAY. 24

NULLIF. 24

NUMTODSINTERVAL. 25

NUMTOYMINTERVAL. 25

NVL. 26

NVL2. 26

POWER. 26

RAWTOHEX. 27

REGEXP_COUNT. 27

REGEXP_INSTR. 28

REGEXP_LIKE. 28

REGEXP_REPLACE. 29

REGEXP_SUBSTR. 29

REMAINDER. 29

REPLACE. 30

ROUND(date) 30

ROUND(NUMBER) 31

ROWIDTOCHAR. 31

RPAD.. 31

RTRIM... 32

SESSIONTIMEZONE. 32

SIGN.. 32

SIN.. 33

SOUNDEX. 33

SQRT. 33

STDDEV. 33

SUBSTR. 34

SUM... 34

SYS_CONNECT_BY_PATH.. 34

SYS_CONTEXT. 35

SYS_EXTRACT_UTC. 35

SYS_GUID.. 35

SYSDATE. 35

SYSTIMESTAMP. 36

TAN.. 36

TIMESTAMP_TO_SCN.. 36

TO_BINARY_DOUBLE. 36

TO_BINARY_FLOAT. 37

TO_BLOB. 38

TO_CHAR(CHARACTER) 38

TO_CHAR(DATETIME) 38

TO_CHAR(NUMBER) 39

TO_CLOB. 39

TO_DATE. 40

TO_DSINTERVAL. 40

TO_MULTI_BYTE. 41

TO_NUMBER. 41

TO_SINGLE_BYTE. 41

TO_TIMESTAMP. 41

TO_TIMESTAMP_TZ. 42

TO_YMINTERVAL. 42

TRANSLATE. 42

TRIM... 43

TRUNC(DATE) 43

TRUNC(NUMBER) 43

UID.. 43

UPPER. 44

USERENV. 44

VARIANCE. 44

 

作者:wugy ([email protected])

注:如发现错误请Email联系

 

ABS

语法:

ABS ( n )

用法:

返回n的绝对值。

参数:

n为数值数据类型,或者可以隐式转化为数值类型的其他数据类型。

例子:

SELECTABS(-12345.6789) result FROM dual;

    RESULT

----------

12345.6789

 

ACOS

语法:

ACOS ( n )

用法:

返回n的反余弦值。n的值必须在-1到1之间;返回值的范围从0到pi。

参数:

n可以为任意数值类型或可以隐式转化成数值的其他类型。如果n是BINARY_FLOAT,则返回值的类型是BINARY_DOUBLE,否则返回值的类型与参数的数据类型相同。

例子:

SELECT ACOS(-1)result FROM dual;

    RESULT

----------

3.14159265

 

ADD_MONTHS

语法:

ADD_MONTHS ( date,integer )

用法:

返回date加上integer个月后的日期。一个月是由会话(session)参数NLS_CALENDAR来定义的。

参数:

date是一个日期时间值或可以隐式转化为DATE的其他值。integer是一个整数或其他可以转化为整数的值。返回值永远是DATE数据类型。如果date是一个月的最后一天,或者得到结果的月份的天数比date所在月份的天数时,返回结果是结果月份的最后一天。

例子:

SELECTTO_CHAR(ADD_MONTHS(TO_DATE('2011-01-31','YYYY-MM-DD'),1),'YYYY-MM-DD') result FROM dual;

RESULT   

----------

2011-02-28

 

SELECTTO_CHAR(ADD_MONTHS(TO_DATE('2011-01-30','YYYY-MM-DD'),1),'YYYY-MM-DD') result FROM dual;

RESULT   

----------

2011-02-28

 

SELECTTO_CHAR(ADD_MONTHS(TO_DATE('2011-01-27','YYYY-MM-DD'),1),'YYYY-MM-DD') result FROM dual;

RESULT   

----------

2011-02-27

 

SELECTTO_CHAR(ADD_MONTHS(TO_DATE('2011-01-31','YYYY-MM-DD'), 1.9),'YYYY-MM-DD') result FROM dual;

RESULT   

----------

2011-02-28

 

ASCII

语法:

ASCII ( char )

用法:

返回char的第一个字符在数据库字符集中的十进制表示。

参数:

char可以是CHAR,VARCHAR2,NCHAR,NVARCHAR2,或者能转化成它们的其他数据类型。

例子:

SELECT ASCII('甲骨文') result FROM dual;

    RESULT

----------

     42450

 

SELECTASCII('Oracle') result FROM dual;

   RESULT

----------

        79

 

ASCIISTR

语法:

ASCIISTR ( char )

用法:

返回字符串char在数据库字符集中的ASCII版本。非ASCII字符将会转化成\XXXX的格式,其中XXXX是UTF-16编码单元。

例子:

SELECT ASCIISTR('甲骨文') result FROM dual;

RESULT        

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

\7532\9AA8\6587

 

SELECTASCIISTR('Oracle') result FROM dual;

RESULT

------

Oracle

 

ASIN

语法:

ASIN ( n )

用法:

返回n的反正弦值。

n必须在-1到1之间。返回值的范围在-pi/2到pi/2

参数:

n可以为任意数值类型或可以隐式转化成数值的其他类型。如果n是BINARY_FLOAT,则返回值的类型是BINARY_DOUBLE,否则返回值的类型与参数的数据类型相同。

例子:

SELECT ASIN(1)result FROM dual;

    RESULT

----------

1.57079633

 

ATAN

语法:

ATAN ( n )

用法:

返回n的反正切值。n的取值没有范围;而返回值的范围在-pi/2到pi/2之间。

参数:

n可以为任意数值类型或可以隐式转化成数值的其他类型。如果n是BINARY_FLOAT,则返回值的类型是BINARY_DOUBLE,否则返回值的类型与参数的数据类型相同。

例子:

SELECT ATAN(1)result FROM dual;

    RESULT

----------

.785398163

 

ATAN2

语法:

ATAN2 ( n1, n2 )

用法:

返回n1与n2的反正切值。等同于ATAN(n1/n2)。

参数:

n可以为任意数值类型或可以隐式转化成数值的其他类型。如果n是BINARY_FLOAT,则返回值的类型是BINARY_DOUBLE,否则返回值的类型与参数的数据类型相同。

例子:

SELECT ATAN2(1,0)result FROM dual;

    RESULT

----------

1.57079633

 

SELECT ATAN2(-.1,0)result FROM dual;

    RESULT

----------

-1.5707963

 

AVG

语法:

AVG ( [DISTINCT|ALL]expr )

用法:

返回expr的平均值。

参数:

expr可以为任意数值类型或可以转化为数值类型的其他类型。返回值的数据类型与expr的数据类型相同。

例子:

SELECT AVG(DISTINCTsal) result FROM scott.emp;

    RESULT

----------

2064.58333

 

SELECT AVG(ALL sal)result FROM scott.emp;

    RESULT

----------

2073.21429

 

BFILENAME

语法:

BFILENAME ('directory', 'filename' )

用法:

返回一个关于directory和filename的BFILE定位器。

参数:

directory是一个DIRECTORY对象。filename是服务器文件系统的一个文件名。

例子:

作为SYSDBA

CREATE DIRECTORYMEDIA_DIR AS '/home/oracle';

GRANT READ ONDIRECTORY MEDIA_DIR TO TEST;

作为TEST

CREATE TABLEtest_bfile (id NUMBER, bfiles BFILE);

INSERT INTOtest_bfile VALUES (1, BFILENAME('MEDIA_DIR', 'uname.txt'));

COMMIT;

 

BIN_TO_NUM

语法:

BIN_TO_NUM ( expr [,expr, ...] )

用法:

将字节向量转化成等值的NUMBER。

参数:

每个expr不是0就是1。

例子:

SELECTBIN_TO_NUM(1,1,0,0) result FROM dual;

    RESULT

----------

        12

 

BITAND

语法:

BITAND ( expr1,expr2 )

用法:

返回expr1与expr2进行位与运算的结果。

参数:

expr1和expr2都是NUMBER,结果也是NUMBER。如果其中一个参数为NULL,结果也为NULL。

例子:

SELECT BITAND(

       BIN_TO_NUM(1,1,0,0),

       BIN_TO_NUM(1,0,1,1)) result FROM dual;

    RESULT

----------

         8

 

CARDINALITY

语法:

CARDINALITY (nested_table )

用法:

返回内嵌表中元素的个数。

参数:

返回值的类型是NUMBER。如果内嵌表是空的,或者是一个null集合,则返回NULL。

例子:

CREATE OR REPLACETYPE test_nestedtable AS TABLE OF VARCHAR2(20);

/

CREATE TABLE test_nt(id NUMBER, nt test_nestedtable) NESTED TABLE nt STORE AS nt_tab;

INSERT INTO test_nt VALUES(1, test_nestedtable('hello', 'nested', 'table'));

COMMIT;

SELECT id, CARDINALITY(nt) FROM test_nt;

        ID CARDINALITY(NT)

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

         1               3

 

CAST

语法:

CAST ( { expr | MULTISET ( subquery ) } AS type_name )

用法:

将一种内置的数据类型或集合类型转化成另一种内置的数据类型或集合类型。CAST不支持LONG,LONG RAW。

参数:

数据类型可以为BINARY_FLOAT,BINARY_DOUBLE,CHAR,VARCHAR2,NUMBER,DATETIME,INTERVAL,RAW,ROWID,UROWID,NCHAR,NVARCHAR2。

例子:

SELECT CAST(TO_DATE('2011/10/07','YYYY/MM/DD')AS TIMESTAMP WITH LOCAL TIME ZONE) result FROM dual;

RESULT                            

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

07-OCT-1112.00.00.000000 AM +08:00

 

CREATE OR REPLACETYPE cust_address_typ

                                           AS OBJECT

    ( street_address     VARCHAR2(40)

    , postal_code        VARCHAR2(10)

    , city               VARCHAR2(30)

    , state_province     VARCHAR2(10)

    , country_id         CHAR(2)

    );

/

 

CREATE TYPE address_book_tAS TABLE OF cust_address_typ;

/

 

CREATE TABLEcust_address (

  custno            NUMBER,

  street_address    VARCHAR2(40),

  postal_code       VARCHAR2(10),

  city              VARCHAR2(30),

  state_province    VARCHAR2(10),

  country_id        CHAR(2));

 

CREATE TABLEcust_short (custno NUMBER, name VARCHAR2(31));

 

INSERT INTOcust_short VALUES (1, 'TEST');

 

INSERT INTOcust_address VALUES (1, 'O STREET', '9900', 'ORACLE', 'DATABASE', 'CN');

 

COMMIT;

 

SELECT s.custno,s.name,

  CAST(MULTISET(SELECT ca.street_address,ca.postal_code, ca.city, ca.state_province, ca.country_id

                FROM cust_address ca

                WHERE s.custno = ca.custno)

  AS address_book_t)

FROM cust_short s

ORDER BY s.custno;

CUSTNO NAME  RESULT(STREET_ADDRESS,POSTAL_CODE,CITY,STATE_PROVINCE,COUNTRY_ID)

           

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

     1 TEST ADDRESS_BOOK_T(CUST_ADDRESS_TYP(O STREET,9900,ORACLE,DATABASE,CN))

 

CEIL

语法:

CEIL ( n )

用法:

返回大于或等于n的最小整数。

参数:

n可以为任意数值类型或可以隐式转化成数值的其他类型。返回值的类型与参数的数据类型相同。

例子:

SELECT CEIL(1234.5)result FROM dual;

    RESULT

----------

      1235

 

CHARTOROWID

语法:

CHARTOROWID ( char )

用法:

将CHAR,VARCHAR2,NCHAR或NVARCHAR2的数据类型转换成ROWID数据类型。

例子:

select rowid, id fromtest_nt

wherechartorowid('AAAVLjAAEAAAADmAAA') = rowid;

ROWID                      ID

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

AAAVLjAAEAAAADmAAA          1

 

CHR

语法:

CHR ( n [ USINGNCHAR_CS ] )

用法:

返回拥有二进制编码n的字符,如果使用NCHAR_CS,就使用数据库字符集。对于单字节字符集,如果n大于256,那么会先进行n mod 256取余数的操作。

参数:

n是一个NUMBER类型的值,或者可以转化成NUMBER的其他类型的值。返回值是一个字符。

例子:

select CHR(42450)from dual;

CHR(42450)

----------

甲  

 

COALESCE

语法:

COALESCE ( { expr [,expr ] ... } )

用法:

返回第一个非NULL的值,至少有两个expr。

参数:

expr的数据类型必须一致

例子:

select COALESCE (null, 123, '123') from dual;

select COALESCE (null, 123, '123') from dual

                             *

Error at line 1

ORA-00932:inconsistent datatypes: expected NUMBER got CHAR

 

select COALESCE (null, 123, 456) from dual;

COALESCE(NULL,123,456)

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

                   123

 

COMPOSE

语法:

COMPOSE ( char )

用法:

将参数的字符串转化成相同字符集下的Unicode字符串。

参数:

char可以为CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或NCLOB。

例子:

SELECT COM

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介:Oracle 11G 完整的课程体系,从安装到入门到项目实战开发,整个学习过程,都以实践操作为主,大量的案例,实例,作业,来保证学习,练习,直到具备数据分析师,掌握SQL部分,能达到数据库开发工程师的能力要求与水平,SQL查询,数据库对象,索引,视图,分区表,优化等等实现从事数据分析师所具备的的数据处理能力,结合存储过程开发与使用,能更好的结合业务需求来完成对指标的统计与分析。 课程收益你将获得:    数据分析师SQL实战    掌握Oracle数据库全部技能    数据分析师入门操作    数据库开发工程师    独立开发数据库需求    SQL纯实战应用    具备数据处理,数据存储技能    具备数据仓库架构师思维与应用 1、建议每天保证2个小时学习时间,加以练习实操2、每节课后的练习案例动手实践,方能记忆深刻3、学完知识点后举一反三,应用到实际工作中 课程亮点:Oracle全集包含服务器搭建,客户端使用,入门步骤,SQL各查询实现,条件查询,分组,聚合函数,正则表达式,高级函数,连接查询,多表查询,子查询,数据插入,更新,删除,数据库对象,如表,视图,索引,同义词,分区表,存储过程,存储过程大量案例,项目开发等等内容丰富,各知识点都配置相应的作业及解答过程,真正实例与案例操作,学会Oracle各种操作,满足实际业务工作需要,真正做到事半功倍,以实践工作出发完成各知识点的学习与应用,掌握数据库相关的技能 适合人群: 数据分析师,数据库开发人员,技能提升,数据库应用,在校学生,零基础入门,项目开发,初,中,高级数据库开发工 程师,ETL开发,数据仓库架构,数据运维,企业开发,数据管理,数据质量等。 老师介绍:SUN老师高级数据分析专家,有着丰富的BI项目开发工作经验,具备数仓各方面的数据治理,指标开发,业务梳理,口径开发,曾相继在中国移动,亚信,文思任职高级项目开发,专业领域BI,数据分析,维度与指标展示,数仓流程开发,可视化等相关技术 ,有完备的数据分析理论知识与应用,在数据分析,数据处理,数据可视化数据建模等应用,指标统计,维度分析,多维分析等有深入研究,具备更严谨的实践技能操作。 课程大纲:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值