电脑技术学习

Oracle函数集锦

dn001
  8、SYS_CONTEXT(c1,c2[,n]) 将指定命名空间c1的指定参数c2的值按照指定长度n截取后返回。

  Oracle9i提供内置了一个命名空间USERENV,描述了当前session的各项信息,其拥有下列参数:

   CURRENT_SCHEMA:当前模式名;

   CURRENT_USER:当前用户;

   IP_ADDRESS:当前客户端IP地址;

   OS_USER:当前客户端操作系统用户;

  等等数十项,更详细的参数列还请大家直接参考Oracle Online Documents

  例如:SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;

  注: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.01) FROM DUAL;

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

  例如:SELECT COS(-2) FROM DUAL;

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

  例如:SELECT ACOS(0.9) FROM DUAL;

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

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

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

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

  例如:SELECT ceil(18.2) FROM DUAL;

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

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

  例如:SELECT FLOOR(2.2) FROM 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,1) FROM DUAL;