1. GREATEST—最大值
【语法】: greatest(exp1,exp2,exp3,……,expn)
【功能】: 返回表达式列表中值最大的一个。如果表达式类型不同,会隐含转换为第一个表达式类型。
【参数】: exp1……n,各类型表达式
【返回】: exp1类型
【例子】: SELECT greatest(10,32,'123','2006') A,greatest('kdnf','dfd','a','206') B FROM dual;
【结果】:
A | B |
2006 | kdnf |
2. LEAST—最小值
【语法】: least(exp1,exp2,exp3,……,expn)
【功能】: 返回表达式列表中值最小的一个。如果表达式类型不同,会隐含转换为第一个表达式类型。
【参数】: exp1……n,各类型表达式
【返回】exp1类型
【例子】: SELECT least(10,32,'123','2006')A, least('kdnf','dfd','a','206') B FROMdual;
【结果】:
A | B |
10 | 206 |
3. NVL
【语法】: NVL (expr1, expr2)
【功能】: 若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。注意两者的类型要一致
【例子】: SELECT NVL(NULL,'a') A, NVL('b',NULL) B FROM dual;
【结果】:
A | B |
a | b |
4. NVL2
【语法】: NVL2 (expr1, expr2, expr3)
【功能】: 当expr1为空取expr2,否则取expr3
【例子】: SELECT NVL2(1,'a','b') A, NVL2(null,'a','b') B FROM dual;
【结果】:
A | B |
a | b |
5. USER—数据库用户名
【语法】: user
【功能】: 返回当前会话对应的数据库用户名。
【参数】: 无
【例子】: SELECT user FROM dual;
【结果】:
user |
MDMDB |
6. UID—用户id号
【语法】: uid
【功能】: 返回当前会话所对应的用户id号。
【参数】: 无
【例子】: SELECT uid FROM dual;
【结果】:
uid |
90 |
7. USERENV
【语法】: userenv(parameter)
【功能】: 返回当前会话上下文属性。
【参数】: Parameter是参数,可以用以下参数代替:
Isdba:若用户具有dba权限,则返回true,否则返回false.
Language:返回当前会话对应的语言、地区和字符集。
LANG:返回当前环境的语言的缩写
Terminal:返回当前会话所在终端的操作系统标识符。
Sessionid:返回正在使用的审计会话号.
Client_info:返回用户会话信息,若没有则返回null
【例子】: select userenv('isdba'), userenv('Language'),userenv('LANG') from dual;
【结果】:
userenv('isdba') | userenv('Language') | userenv('LANG') |
FALSE | AMERICAN_AMERICA.AL32UTF8 | US |
8. NULLIF
【语法】: NULLIF (expr1, expr2)
【功能】: expr1和expr2相等返回NULL,不相等返回expr1
【例子】: select NULLIF ('a','b'),NULLIF('a','a') from dual;
【结果】:
NULLIF ('a','b') | NULLIF ('a','a') |
a |
|
9. COALESCE—非空
【语法】: COALESCE(c1, c2, ...,cn)
【功能】: 返回列表中第一个非空的表达式,如果所有表达式都为空值则返回1个空值
【参数】: c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null
【说明】从Oracle 9i版开始,COALESCE函数在很多情况下就成为替代CASE语句的一条捷径
【例子】: select COALESCE(null,3*5,44)A,COALESCE(0,3*5,44) B, COALESCE(null,'','AAA') C,COALESCE('','AAA') D fromdual;
【结果】:
A | B | C | D |
15 | 0 | AAA | AAA |
10.ROWNUM—行号
【语法】: rownum
【功能】: 返回当前行号。
【参数】: 无
【例子】: SELECT rownum FROM dual;
【结果】:
rownum |
1 |
11.BFILENAME
【语法】: BFILENAME(dir,file)
【功能】: 函数返回一个空的BFILE位置值指示符,函数用于初始化BFILE变量或者是BFILE列。
【参数】: dir是一个directory类型的对象,file为一文件名
12.VSIZE—字节数
【语法】: VSIZE(X)
【功能】: 返回X的大小(字节)数
【例子】: select length('adfad合理') length,lengthb('adfad合理') lengthb,vsize('adfad合理') vsize,lengthc('adfad合理') lengthc from dual;
【结果】:
length | lengthb | vsize | lengthc |
7 | 11 | 11 | 7 |
13.SYS_GUID—随机数
【语法】: sys_guid()
【功能】: 生产32位的随机数,不过中间包括一些大写的英文字母
【返回】: 长度为32位的字符串,包括0-9和大写A-F
【例子】: select sys_guid() from dual;
【结果】:
sys_guid() |
9A43F0A57F644E68806E569AFCE1C3F4 |
14.SYS_CONTEXT
【语法】: SYS_CONTEXT(c1,c2)
【功能】: 返回系统c1对应的c2的值。可以使用在SQL/PLSQL中,但不可以用在并行查询或者RAC环境中
【参数】: c1,'USERENV'。c2,参数表,详见示例
【例子】: select
SYS_CONTEXT('USERENV','TERMINAL')terminal,
SYS_CONTEXT('USERENV','LANGUAGE')language,
SYS_CONTEXT('USERENV','SESSIONID')sessionid,
SYS_CONTEXT('USERENV','INSTANCE')instance,
SYS_CONTEXT('USERENV','ENTRYID')entryid,
SYS_CONTEXT('USERENV','ISDBA')isdba,
SYS_CONTEXT('USERENV','NLS_TERRITORY')nls_territory,
SYS_CONTEXT('USERENV','NLS_CURRENCY')nls_currency,
SYS_CONTEXT('USERENV','NLS_CALENDAR')nls_calendar,
SYS_CONTEXT('USERENV','NLS_DATE_FORMAT')nls_date_format,
SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE')nls_date_language,
SYS_CONTEXT('USERENV','NLS_SORT')nls_sort,
SYS_CONTEXT('USERENV','CURRENT_USER')current_user,
SYS_CONTEXT('USERENV','CURRENT_USERID')current_userid,
SYS_CONTEXT('USERENV','SESSION_USER')session_user,
SYS_CONTEXT('USERENV','SESSION_USERID')session_userid,
SYS_CONTEXT('USERENV','PROXY_USER')proxy_user,
SYS_CONTEXT('USERENV','PROXY_USERID')proxy_userid,
SYS_CONTEXT('USERENV','DB_DOMAIN')db_domain,
SYS_CONTEXT('USERENV','DB_NAME')db_name,
SYS_CONTEXT('USERENV','HOST')host,
SYS_CONTEXT('USERENV','OS_USER')os_user,
SYS_CONTEXT('USERENV','EXTERNAL_NAME')external_name,
SYS_CONTEXT('USERENV','IP_ADDRESS')ip_address,
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')network_protocol,
SYS_CONTEXT('USERENV','BG_JOB_ID')bg_job_id,
SYS_CONTEXT('USERENV','FG_JOB_ID')fg_job_id,
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE')authentication_type, SYS_CONTEXT('USERENV','AUTHENTICATION_DATA')authentication_data from dual
【结果】:
terminal | language | sessionid | instance |
GUO-XM | AMERICAN_AMERICA.AL32UTF8 | 482837 | 1 |
entryid | isdba | nls_territory | nls_currency |
| FALSE | AMERICA | $ |
nls_calendar | nls_date_format | nls_date_language | nls_sort |
GREGORIAN | DD-MON-RR | AMERICAN | BINARY |
current_user | current_userid | session_user | session_userid |
MDMDB | 90 | MDMDB | 90 |
proxy_user | proxy_userid | db_domain | db_name |
|
|
| orcl |
host | os_user | external_name | ip_address |
WORKGROUP\GUO-XM | admin |
| 172.29.197.92 |
network_protocol | bg_job_id | fg_job_id | |
tcp |
| 0 | |
authentication_type | authentication_data | ||
DATABASE |
|