Oracle的嵌套函数语法
单行函数可以嵌套任意层;
嵌套函数从最深层开始执行。
通用函数:
BFILENAME(directory,file_name)
返回操作系统中与物理文件 file_name 相关的 BFILE 位置指示符。directory 必须是数据字典
中的一个 DIRECTORY 类型对象。
COALESCE(,,,,可以多个参数)返回从左到右的第一个非空的表达式。如果所有表达式都为NULL,则返回 NULL。
EMPTY_BLOB/EMPTY_CLOB
返回一个空的 LOB 位置指示符。EMPTY_CLOB 返回一个字符位置指示符,EMPTY_BLOB 返回一个二进制位置指示符。
EXISTSNODE(XMLType_instrance,Xpath_string)
使用 Xpath_string 中的路径, 确定由 XMLType_instrance 标识的 XML 文档的 TRAVELSAL 是否返回任何节点。这个函数将返回一 个 NUMBER 值,如果没有节点则为 0,如果有节点则为大于 0。
EXTRACT(XMLType_instrance,Xpath_string)
应用 Xpath_string 之后,返回由 XMLType_instrance 标识的XML文档的一部分。
GREATEST(expr1[,expr2]...)
返回其参数中最大的表达式。在进行比较之前,每个表达式都被隐式转换为 EXPR1 的类型,如
果 EXPR1 是字符类型,则使用非填充空格字符比较,返回结果为 VARCHAR2 类型。
LEAST(expr1[,expr2]...)
返回其参数中最小的表达式,其余同上。
NVL(EXPR1,EXPR2)
类型必须匹配,如果 EXPR1 是 NULL,则返回 EXPR2,否则返回 EXPR1。返回值与 EXPR1 类型相
同,除非 EXPR1 是字符类型,在这种情况下将返回 VARCHAR2 类型。这个函数用于确保查询记录
集中不包含 NULL 值。
NVL2(EXPR1,EXPR2,EXPR3)
如果 EXPR1 是 NULL,则返回 EXPR2,否则返回 EXPR3。返回值与 EXPR2 类型相同,除非 EXPR2
是字符类型,在这种情况下将返回 VARCHAR2 类型。
SYS_CONNECT_BY_PATH 返回列值的从根到结点的路径,它仅在层次查询中有效。
SYS_CONTEXT(namespace,parameter[,length])
返回与 namespace 的内容相关联的 patameter 的值。 使用 DBMS_SESSION.SET_CONTEXT 过程设置
参数和 namespace.返回值是 VARCHAR2 类型,如果没有指定 length,则最大长度是 255 字节。
SYS_DBURIGEN
产生一个 URL 用于从数据库中提取XML 文档。
SYS_GUID
以 16 位 RAW 类型值形式返回一个全局唯一的标识符。
SYS_TYPEID(object_type)
返回指定类型 object_type 的类型 ID。
SYS_XMLAGG
将几个 XML 文档或文档片段组合为一个文档。
SYS_XMLGEN
返回一个基于数据库中数据的 XML 文档片段。
TREAT(expr AS [REF] [schema.]type)
TREAT 用于改变一个表达式的声明类型。仅可以将声明类型改变为给定表达式的子类型或超类
型。以类型[schema.]type 返回 expr,如果指定了 REF,则返回 REF。
Oracle的嵌套函数语法
UID
返回一个唯一标识当前数据库用户的整数,UID 没有参数。
VSIZE(x)返回 X 内部表示的字节数。
NULLIF(a,b)如果 A 等于 B 返回 NULL,如果不等于返回 B。
DUMP(expr[,number_format[,start_position][,length]])
返回一个包含 EXPR 内部表示信息的 VARCHAR 值,如果没有指定 NUMBER_FORMAT,则返回结果以
十进制形式返回。如果指定了 start_position 和 length,则返回从 start_position 开始,长
为 length 字节的字符串,缺省是返回整个表达式。所返回的数据类型是内部数据类型编码的对
应数字。