发布日期:2015-10-19 15:14 来源: 标签: oracle教程 oracle函数大全 Oracle函数 Oracle函数详解
本章节我们将学习Oracle中常见的函数以及这些常用函数的使用方法,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
greatest(exp1,exp2,exp3,……,expn)
【功能】返回表达式列表中值最大的一个。如果表达式类型不同,会隐含转换为第一个表达式类型。
【参数】exp1……n,各类型表达式
【返回】exp1类型
【示例】
  SELECT greatest(10,32,'123','2006') FROM dual;
  SELECT greatest('kdnf','dfd','a','206') FROM dual;

least(exp1,exp2,exp3,……,expn)
【功能】返回表达式列表中值最小的一个。如果表达式类型不同,会隐含转换为第一个表达式类型。
【参数】exp1……n,各类型表达式
【返回】exp1类型
【示例】
  SELECT least(10,32,'123','2006') FROM dual;
  SELECT least('kdnf','dfd','a','206') FROM dual;

【语法】NVL (expr1, expr2)
【功能】若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。
注意两者的类型要一致 

【语法】NVL2 (expr1, expr2, expr3) 
【功能】expr1不为NULL,返回expr2;expr2为NULL,返回expr3。
expr2和expr3类型不同的话,expr3会转换为expr2的类型 

user
【功能】返回当前会话对应的数据库用户名。
【参数】无
【返回】字符型

uid
【功能】返回当前会话所对应的用户id号。
【参数】无
【返回】字符型

userenv(parameter)
【功能】返回当前会话上下文属性。
【参数】Parameter是参数,可以用以下参数代替:
Isdba:若用户具有dba权限,则返回true,否则返回false.
Language:返回当前会话对应的语言、地区和字符集。
LANG:返回当前环境的语言的缩写
Terminal:返回当前会话所在终端的操作系统标识符。
Sessionid:返回正在使用的审计会话号.
Client_info:返回用户会话信息,若没有则返回null.
【返回】根据参数不同则类型不同
【示例】
Select userenv('isdba'),userenv('Language'

【语法】NULLIF (expr1, expr2)
【功能】expr1和expr2相等返回NULL,不相等返回expr1

COALESCE(c1, c2, ...,cn)
【功能】返回列表中第一个非空的表达式,如果所有表达式都为空值则返回1个空值
【参数】c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null
【返回】同参数类型
【说明】从Oracle 9i版开始,COALESCE函数在很多情况下就成为替代CASE语句的一条捷径
【示例】
select COALESCE(null,3*5,44) hz from dual; 返回15
select COALESCE(0,3*5,44) hz from dual; 返回0
select COALESCE(null,'','AAA') hz from dual; 返回AAA
select COALESCE('','AAA') hz from dual; 返回AAA

rownum
【功能】返回当前行号
【参数】无
【返回】数值型

BFILENAME(dir,file)
【功能】函数返回一个空的BFILE位置值指示符,函数用于初始化BFILE变量或者是BFILE列。
【参数】dir是一个directory类型的对象,file为一文件名。
insert into lobdemo(key,bfile_col) values (-1,biflename('utils','file1'));

VSIZE(X)
【功能】返回X的大小(字节)数
【参数】x
select vsize(user),user from dual;
返回:6 asdied
  select length('adfad合理') "bytesLengthIs" from dual --7
  select lengthb('adfad') "bytesLengthIs" from dual --5
  select lengthb('adfad合理') "bytesLengthIs" from dual --9
  select vsize('adfad合理') "bytesLengthIs" from dual --9
  select lengthc('adfad合理')"bytesLengthIs" from dual --7
  lengthb=vsize
  lengthc=length

【语法】sys_guid()
【功能】生产32位的随机数,不过中间包括一些大写的英文字母。
【返回】长度为32位的字符串,包括0-9和大写A-F
【示例】
select sys_guid() from  dual

【语法】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



















































相关评论

专题信息
    Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。本教程重点讲解Oracle函数、SQL语言、PL/SQL语言、oracle安装、SQL技巧等多方面的知识,对大家学习Oracle以及Oracle的实际应用有很大帮助。