其他函数
前面介绍了单行函数以及聚合函数,下面介绍几个不属于前面类型的函数,主要是系统环境和编码方面的函数。
1. USER 函数。
该函数返回当前会话的登录名。演示脚本如下:
select user
from dual;
2. USERENV(parameter) 函数。
返回当前会话的信息。
例如,当参数为 Language
时可以返回当前会话对应的语言、字符集等。
SESSIONID
可返回当前会话 ID
。
ISDBA
可返回当前用户是否 DBA
。
示例将演示返回当前用户是否 DBA
用户。脚本如下:
select userenv('ISDBA')
from dual;
3. SYS_CONTEXT(namespace,parameter) 函数。
该函数可以得到 Oracle 已经创建的 context
,名为 USERENV
的属性对应值。
示例将得到当前会话对应的用户名。
脚本如下:
select sys_context('USERENV', 'SESSION_USER') session_user
from dual;
4. DECODE 函数。
该函数的具体语法是 DECODE(expr,search,result[,search1,result1](,default))
。
该函数的执行过程是,当 expr
符合条件 search
时就返回 result
的值,该过程可以重复多个,如果最后没有匹配的结果,可以返回默认值 default
,注意它是一对一的匹配过程。
下面的示例将演示 emp
中工资高于 2000 的就显示“高薪”,少于或等于 2000 则显示“低薪”。
脚本如下:
select sal,
decode(sign(sal - 100), 1, '高薪', -1, '低薪', 0, '低薪')
from emp;
从函数中可以看出它只能和单一的条件匹配,如果要想得到某个范围,可以利用其他的函数做辅助。