1、decode函数
DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
DECODE(字段,比较1,值1,比较2,值2,.....,比较n,值n缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
通过该函数能够实现表的行列转换。
2、nvl和nvl2函数
NVL(eExpression1,eExpression2)
如果eExpression1的计算结果为null值,则NVL()返回eExpression2。
如果eExpression1的计算结果不是null值,则返回eExpression1。
eExpression1和eExpression2可以是任意一种数据类型。
如果eExpression1与eExpression2的结果皆为null值,则NVL返回NULL。
NVL2(E1,E2,E3)
如果E1为null,则返回E3。
如果E1不为null,则返回E2。
3、ora_hash函数
ora_hash(str)计算参数的散列值。可以通过该函数+oracle11g的虚拟列技术(视图)实现oracle的乐观锁。
添加oracle的虚拟列:
SQL> alter table dept
2 add hash as (ora_hash(dname || '/' || loc));
3、sys_guid函数
sys_guid()生成一个随机的UUID。
SQL> select sys_guid() from dual;
SYS_GUID()
--------------------------------
DDBF52D76C9D0885E040007F0100159A