登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

ORACLE函数介绍第二篇 非著名函数之单值函数收藏  

2009-05-25 16:54:11|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 ORACLE函数介绍第二篇 非著名函数之单值函数收藏

数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。

例如:SELECT ABS(-1000000.01) FROM DUAL;

例如:SELECT ACOS(0.9) FROM DUAL;

4、,详细说明一下:

假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。

例如:SELECT BITAND(3,9) FROM DUAL;

例如:SELECT ceil(18.2) FROM DUAL;

例如:SELECT FLOOR(2.2) FROM DUAL;

7、BIN_TO_NUM

例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

例如:SELECT ASIN(0.8) FROM DUAL;

例如:SELECT TANH(0.8) FROM DUAL;

例如:SELECT ATAN(-444444.9999999) FROM DUAL;

例如:SELECTLOG(1.1,2.2) FROM DUAL;

17、

例如:SELECT POWER(2.2,2.2) FROM DUAL;

例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

例如:SELECT SQRT(0.1) FROM DUAL;

1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符

例如:SELECT concat('aa','bb') FROM DUAL;

3、INITCAP(c)   将字符串中单词的第一个字母转换为大写,其它则转换为小写

例如:SELECT INITCAP('whaT is this') FROM DUAL;

4、NLS_INITCAP(c)  返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写

例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;

例如:SELECT ASCII('_') FROM DUAL;

1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6

例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

例如:SELECTSESSIONTIMEZONEFROM DUAL;

6、EXTRACT(key from date)  key=(year,month,day,hour,minute,second)  从指定时间提到指定日期列

例如:SELECT EXTRACT(yearfromsysdate) FROM DUAL;

7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。

例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。

例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid等。此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。

例如:SELECTCAST('1101'ASNUMBER(5)) FROM DUAL;

例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。

例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;

例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;

1、COALESCE(n1,n2,....n)   返回序列中的第一个非空值

例如:SELECTCOALESCE(null,5,6,null,9) FROM DUAL;

2、DUMP(exp[,fmt[,start[,length]]])

dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。

如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。

例如:SELECTDUMP('abcdefg',17,2,4) FROM DUAL;

3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。

4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。

例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

 ORACLE函数介绍第二篇 非著名函数之单值函数收藏

数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。

例如:SELECT ABS(-1000000.01) FROM DUAL;

例如:SELECT ACOS(0.9) FROM DUAL;

4、,详细说明一下:

假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。

例如:SELECT BITAND(3,9) FROM DUAL;

例如:SELECT ceil(18.2) FROM DUAL;

例如:SELECT FLOOR(2.2) FROM DUAL;

7、BIN_TO_NUM

例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

例如:SELECT ASIN(0.8) FROM DUAL;

例如:SELECT TANH(0.8) FROM DUAL;

例如:SELECT ATAN(-444444.9999999) FROM DUAL;

例如:SELECTLOG(1.1,2.2) FROM DUAL;

17、

例如:SELECT POWER(2.2,2.2) FROM DUAL;

例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

例如:SELECT SQRT(0.1) FROM DUAL;

1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符

例如:SELECT concat('aa','bb') FROM DUAL;

3、INITCAP(c)   将字符串中单词的第一个字母转换为大写,其它则转换为小写

例如:SELECT INITCAP('whaT is this') FROM DUAL;

4、NLS_INITCAP(c)  返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写

例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;

例如:SELECT ASCII('_') FROM DUAL;

1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6

例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

例如:SELECTSESSIONTIMEZONEFROM DUAL;

6、EXTRACT(key from date)  key=(year,month,day,hour,minute,second)  从指定时间提到指定日期列

例如:SELECT EXTRACT(yearfromsysdate) FROM DUAL;

7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。

例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。

例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid等。此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。

例如:SELECTCAST('1101'ASNUMBER(5)) FROM DUAL;

例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。

例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;

例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;

1、COALESCE(n1,n2,....n)   返回序列中的第一个非空值

例如:SELECTCOALESCE(null,5,6,null,9) FROM DUAL;

2、DUMP(exp[,fmt[,start[,length]]])

dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。

如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。

例如:SELECTDUMP('abcdefg',17,2,4) FROM DUAL;

3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。

4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。

例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID

例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。

例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

8、SYS_TYPEID(object_type) 返回对象类型对应的id。

11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。

例如:SELECT USERENV('LANGUAGE') FROM DUAL;

例如:SELECT VSIZE('abc中华') FROM DUAL;

6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID

例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。

例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

8、SYS_TYPEID(object_type) 返回对象类型对应的id。

11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。

例如:SELECT USERENV('LANGUAGE') FROM DUAL;

例如:SELECT VSIZE('abc中华') FROM DUAL;

  评论这张
 
阅读(148)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018