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

原创 2007年09月19日 17:42:00

注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。

  单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。

(一).数值型函数(Number Functions)

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

1、ABS(n) 返回数字的绝对值

例如:SELECT ABS(-1000000.01FROM DUAL;

2、COS(n) 返回n的余弦值

例如:SELECT COS(-2FROM DUAL;

3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。

例如:SELECT ACOS(0.9FROM DUAL;

4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:

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

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

5、CEIL(n)  返回大于或等于n的最小的整数值

例如:SELECT ceil(18.2FROM DUAL;

考你一下,猜猜ceil(-18.2)的值会是什么呢

6、FLOOR(n) 返回小于等于n的最大整数值

例如:SELECT FLOOR(2.2FROM DUAL;

再猜猜floor(-2.2)的值会是什么呢

7、BIN_TO_NUM(n1,n2,....n)  二进制转向十进制

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

8、SIN(n) 返回n的正玄值,n为弧度。

例如:SELECT SIN(10FROM DUAL;

9、SINH(n) 返回n的双曲正玄值,n为弧度。

例如:SELECT SINH(10FROM DUAL;

10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2。

例如:SELECT ASIN(0.8FROM DUAL;

11、TAN(n) 返回n的正切值,n为弧度

例如:SELECT TAN(0.8FROM DUAL;

12、TANH(n) 返回n的双曲正切值,n为弧度

例如:SELECT TANH(0.8FROM DUAL;

13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2。

例如:SELECT ATAN(-444444.9999999FROM DUAL;

14、EXP(n) 返回e的n次幂,e = 2.71828183 ...

例如:SELECT EXP(3FROM DUAL;

15、LN(n) 返回n的自然对数,n>0

例如:SELECT LN(0.9FROM DUAL;

16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0

例如:SELECT LOG(1.1,2.2FROM DUAL;

17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以为任意数值,不过如果m是负数,则n必须为整数

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

18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.

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

19、SQRT(n) 返回n的平方根,n为弧度。n>=0

例如:SELECT SQRT(0.1FROM DUAL;

(二).字符型函数返回字符值(Character Functions Returning Character Values)

  该类函数返回与输入类型相同的类型。

返回的CHAR类型值长度不超过2000字节;

返回的VCHAR2类型值长度不超过4000字节;

如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。

返回的CLOB类型值长度不超过4G;

对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。

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

例如:SELECT CHR(95FROM DUAL;

2、CONCAT(c1,c2) 连接字符串,等同于||

例如: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;

它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。

(三).字符型函数返回数字值(Character Functions Returning Number Values)

本类函数支持所有的数据类型

1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。

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

(四).日期函数(Datetime Functions)

本类函数中,除months_between返回数值外,其它都将返回日期。

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

例如:SELECT CURRENT_TIMESTAMP(3FROM DUAL;

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

例如:SELECT LOCALTIMESTAMP(3FROM DUAL;

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

例如:SELECT SYSTIMESTAMP(4FROM DUAL;

4、DBTIMEZONE 返回数据库的当前时区

例如:SELECT DBTIMEZONE FROM DUAL;

5、SESSIONTIMEZONE 返回当前session所在时区

例如:SELECT SESSIONTIMEZONE FROM DUAL;

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

例如:SELECT EXTRACT(year from sysdateFROM DUAL;

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

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

(五).转换函数(Conversion Functions)

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

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

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

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

例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

3、CHARTOROWID(c)  将字符串转换为rowid类型

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

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

例如:SELECT ROWIDTOCHAR(rowidFROM DUAL;

5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串

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

6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串

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

(六).其它辅助函数(Miscellaneous Single-Row Functions)

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

例如:SELECT COALESCE(null,5,6,null,9FROM DUAL;

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

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

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

例如:SELECT DUMP('abcdefg',17,2,4FROM DUAL;

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

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

例如:SELECT NLS_CHARSET_NAME(1FROM DUAL;

5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id。

例如: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。

例如:这个这个,没有建立过自定义对象,咋做示例?

9、UID 返回一个唯一标识当前数据库用户的整数。

例如:SELECT UID FROM DUAL;

10、USER 返回当前session用户

例如:SELECT USER FROM DUAL;

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

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

12、VSIZE(c) 返回c的字节数。

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

 

相关文章推荐

ORACLE函数 非著名函数之单值函数

注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。    单值函数在查询中返回单个值,可被应用到select,where子句,start with以及con...

ORACLE 著名函数之单值函数

注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。    单值函数在查询中返回单个值,可被应用到select,where子句,start with以及con...

Oracle函数之单值函数

Oracle中单值函数有四种:字符函数,数字函数,日期函数,转换函数 字符函数:Oracle中对字符类型的数据进行处理的函数 将字符类型的数据全部转为小写(lower) 比如:select lower...

ORACLE函数介绍第六篇 著名函数之分析函数

1、AVG([DISTINCT|ALL] expr) OVER(analytic_clause) 计算平均值。例如:--聚合函数SELECT col, AVG(value) FROM tmp1 GRO...

著名的TomCrypt加密解密函数库

  • 2011年11月24日 18:59
  • 2.18MB
  • 下载

JDBC第二篇--【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】

JDBC再入门这是我JDBC的第一篇http://blog.csdn.net/hon_3y/article/details/535357981.PreparedStatement对象PreparedS...
  • hon_3y
  • hon_3y
  • 2016年12月18日 09:58
  • 422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE函数介绍第二篇 非著名函数之单值函数
举报原因:
原因补充:

(最多只允许输入30个字)