Oracle9i 其他函数

函数名 描述
BFILENAME(directory, filename) 返回指向指定文件的 BFILE 定位符

directory: 通过 CREATE DIRECTORY 语句创建

filename : 文件名,可以为新建的文件名

DECODE(...) 函数化的 IF 语句
DUMP(...) 返回字符串的各字符代码数组
EMPTY_BLOB() 返回空 BLOB 位置,可以用于初始化 BLOB 列
EMPTY_CLOB() 返回空 CLOB 位置,可以用于初始化 CLOB 列
NLS_CHARSET_DECL_LEN(bytecnt, csid)  
NLS_CHARSET_ID(text) 返回对应于给定的 NLS 字符集名的 ID 号
NLS_CHARSET_NAME(n) 返回给定的 NLS 字符集 ID 号的对应名
NVL(expr1, expr2) 若 expr1 不为空则返回,为空则返回 expr2
NVL2(expr1, expr2, expr3) 若 expr1 不为空返回 expr2, 为空返回 expr3
NULLIF(expr1, expr2) 若两个值相等返回空,否则返回 expr1
SYS_CONTEXT(namespace, attribute_name [,length]) 返回应用程序上下文命名空间中的属性值
SYS_GUID() 返回可以用作全局惟一标识符的 16 字节的 RAW 值
UID 返回惟一定义当前数据库用户的整数值
USER 当前登陆到数据库的用户名

如果在存储过程/函数中,则返回存储过程/函数的所有者

USERENV(option) 返回当前用户的指定信息
VSIZE(expr) 以字节的形式返回内部代表值的大小
COALESCE(expr,...) 返回第一个非空值

DECODE 函数

相当于多重 IF 语句,只能用于 SQL 语句中。

将 expr 逐个与 search 比较,如果匹配,则返回对应的 result,全部不匹配则返回 default。

最多可使用 255 个参数。

DECODE(expr, search, result [,search,result ...] [default])
参数 描述
expr 表达式
search 匹配选项
result  结果选项
default 默认结果

DUMP 函数

返回一个 VARCHAR2 字符串显示的数据类型,而且内部代表的数据存储在表达式返回的列或数据中。

DUMP(expr [,return_format [,start_postion [,length]]] )
参数 描述
expr  
return_format 转储数据的方式
描述
8 八进制
10 十进制
16 十六进制
17 结果采用字符显示
start_postion  
length  

NLS_CHARSET_DECL_LEN 函数

NLS_CHARSET_DECL_LEN(bytecnt, csid)
参数 描述
bytecnt 以字节的方式,指定 NCHAR 的大小
csid 指定数字定义为该列使用的 NLS 字符集。

可以使用 NLS_CHARSET_ID 函数得到与字符集名对应的字符集数字。

SYS_CONTEXT 函数

返回应用程序上下文命名空间中的属性值

SYS_CONTEXT(namespace, attribute_name [,length])
参数 描述
namespace 指定以前使用 CREATE CONTEXT 语句创建的命名空间的名字

默认命名空间为 USERENV

attribute_name 指定命名空间的属性名
length 指定返回值的空间长度

USERENV 命名空间的预定义属性

名字 描述 最大长度
AUTHENTICATION_DATA 用于鉴别用户的数据 2564000
AUTHENTICATION_TYPE 显示用户怎样被鉴别,返回值:
返回值 描述
DATABASE 用户名/口令
OS 操作系统
PROXY 代理
30
BG_JOB_ID 如果当前会话是由后台的 Oracle 进行创建,则返回会话的工作 ID,否则返回空值 30
CLIENT_INFO 用户会话信息 30
CURRENT_SCHEMA 当前架构名,一般为用户名 / SYS 30
CURRENT_SCHEMAID 与当前架构关联的 ID 号 30
CURRENT_USER 当前用户名

如果已经调用了存储过程,则与 SESSION_USER 不同

30
CURRENT_USERID 当前用户相关的 ID 号 30
DB_DOMAIN 由 DB_DOMAIN 初始化参数指定的数据库域 256
DB_NAME 由 DB_NAME 初始化参数指定的数据库名 30
ENTRYID 审核条目标识符 30
EXTERNAL_NAME 数据库用户的扩展名 256
FG_JOB_ID 如果会话是由客户的前台进行创建,返回会话的工作 ID,否则为空 30
HOST 客户端连接的机器名 54
INSTANCE 当前连接的实例名 30
IP_ADDRESS 用户的 IP 地址 30
ISDBA 是否为 ISDBA 角色 30
LANG 当前语言名的 ISO 缩写 62
LANGUAGE 当前语言设置、区域设置和数据库字符集名 52
NETWORD_PROTOCOL 网络协议名 256
NLS_CALENDAR 当前 NLS 日历名 62
NLS_CURRENCY 当前 NLS 货币指示符 62
NLS_DATE_FORMAT 当前 NLS 日期格式 62
NLS_DATE_LANGUAGE 当前 NLS 日期语言 62
NLS_SORT 当前排序基础 62
NLS_TERRITORY 当前 NLS 区域名 62
OS_USER 初始化数据库连接的客户操作系统用户名进程 30
PROXY_USER 打开当前会话的用户名 30
PROXY_USERID 打开当前会话的用户 ID 30
SESSIN_USER 当前用户登陆的名字 30
SESSION_USERID 与会话用户关联的 ID 号 30
SESSION_ID 审核会话标识符 30
TERMINAL 当前会话的客户的操作系统标识符 10

USERENV 函数

USERENV(option)
option 描述
ENTRYID 审核条目标识符
INSTANCE 当前连接的实例名
ISDBA 是否为 ISDBA 角色
LANG 当前语言名的 ISO 缩写
LANGUAGE 当前语言设置、区域设置和数据库字符集名
SESSION_ID 审核会话标识符
TERMINAL 当前会话的客户的操作系统标识符