四、SQL函数⑤(各数据库系统独有函数②)

Oracle中的独有函数

填充函数

与MYSQL类似,Oracle中也提供了用于进行字符串填充的函数LPAD()、RPAD(),其参数格式如下:

LPAD(char1,n [,char2])
RPAD(char1, n [,char2])

与MYSQL中不同的是,Oracle中LPAD()和RPAD()函数的第三个参数是可以省略的,如果省略第三个参数,则使用单个空格进行填充。

如:分别将每个人的姓名用星号左填充和井号右填充到5个字符

SELECT FName,LPAD(FName,5,"*"),RPAD(FName,5,"#") FROM T_Person

执行结果:

FNAME LPAD(FNAME,5,*) RPAD(FNAME,5,#)
Tom **Tom Tom##
Jim **Jim Jim##
Lily *Lily Lily#
Kelly Kelly Kelly
Sam **Sam Sam##
Kerry Kerry Kerry
Smith Smith Smith
BillGates BillG BillG

返回当月最后一天

Oracle中的LAST_DAY()函数可以用来计算指定日期所在月份的最后一天的日期。
如:计算每个人出生时当月的最后一天的日期:

SELECT FName,FBirthDay,
LAST_DAY(FBirthDay) FROM T_Person 
WHERE FBirthDay IS NOT NULL

计算最大最小值

和MYSQL类似,Oracle中提供了用来计算一个集合中的最大和最小值的GREATEST()函数和LEAST()函数。其使用方法和MYSQL一致:

SELECT GREATEST(2,7,1,8,30,4,5566,99,2,222,12),
LEAST(2,7,1,8,30,4,3,99,-2,222,12) FROM DUAL

执行结果:

GREATEST(2,7,1,8,30,4,5566,99,2,222,12) LEAST(2,7,1,8,30,4,3,99,-2,222,12)
5566 -2

辅助功能函数

USER函数用来取得当前登录用户名,注意使用这个函数的时候不能使用括号形式的空参数列表,也就是USER()这种使用方式是不对的。正确使用方式如下:

SELECT USER FROM DUAL

执行结果:

USER
SYS

USERENV()函数用来取得当前登录用户相关的环境信息,这个函数的返回值为字符串类型,需要根据情况将返回值转换为合适的类型。它的参数格式如下:

USERENV(option)

option参数为要取得的环境信息的名称,可取值如下:

可取值说明
"ISDBA" 如果当前登录用户有DBA的角色则返回TRUE,否则返回FALSE
"LANGUAGE" 返回当前登录用户使用的语言和字符集,返回格式为“语言.字符集”
"TERMINAL" 返回当前登录用户的操作系统标识
"SESSIONID" 返回当前登录用户的会话标识
"ENTRYID" 返回当前登录用户的认证标识
"LANG" 返回当前用户使用的语言,它比"LANGUAGE"的返回值短
"INSTANCE" 返回当前实例的标识

如:取得当前登录用户的语言信息和权限信息:

SELECT USERENV("ISDBA") AS ISDBA,USERENV("LANGUAGE") AS LANGUAGE,USERENV("LANG") AS LANG FROM DUAL

执行结果:

ISDBA LANGUAGE LANG
TRUE SIMPLIFIED
CHINESE_CHINA.AL32UTF8
ZHS

猜你喜欢

转载自blog.csdn.net/qq_41389678/article/details/112005060