oracle 其他函数

 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

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值