服务器 频道

PL/SQL学习笔记之六

  【IT168 服务器学院】to_label(x[,y])函数,按照格式Y将字符串X转换成MLSLABEL类型的一个值,若默认格式为Y,则按照默认格式进  行转换。

  dump(w,[x[,y[,z]]])函数,用来返回字符串EXPR的数据类型,内部的存储位置和字符长度。
  dump(expr,return_datatype,start_position,length).
  return_datatype是指定返回返回位置用什么方式表示,可以为8、10、16、17,分别表示      用八进制、十进制、十六进制和字符类型。

  例:
  select dump(last_name,8,3,2) ,dump(last_name,10,3,2) ,
  dump(last_name,16,3,2) ,dump(last_name,17,3,2) from employees
  where lower(last_name) = ''smith'';

  greatest(x,y,...)函数,返回参数列表中的最大值。其参数的类型是由第一个参数决定的,可以为数值型、日期型  、和字符型等,后面的参数被强制转换成此种数据类型。
  进行字符串的比较时,其大小由字符在字符集中的数值决定,在字符集中的数值大,则此字  符就大,对于字符串,此函数返回VARCHAR2类型。  

  least(x,y,......)函数,返回列表参数中的最小值。

  与上两个函数类似的有:
  greatest_lb(x,y,....)函数和least_lb(x,y,....)函数,分别求出列表中的标签的最大下限和最小上限,其参数必须为MLSLABEL 类型,返回值为 RAW MLSLABEL类型。

  user 函数,返回当前用户的数据库用户名。
  uid函数,返回唯一标识当前用户的整数。
  这两个函数在完整性约束检查时会用到,可以当作引用变量一样引用它们。

  userenv(x)函数,返回当前会话的一些信息,由X指定返回何种信息。在写一个指定应用的审计测试表或决定为当前会话指定哪种语言时会用到,但完整性约束时不能用。
  参数:
  entryid  返回有效的审计条目标识   
  label  返回当前会话的标签
  language  以“语言.字符集”形式返回所用的语言和字符集
  sessionid  返回正在使用的审计会话号
  terminal  返回当前会话终端所用的操作系统

  嵌套函数:

  单行函数可以嵌套任意层;
  嵌套函数从最深层开始执行。

  通用函数:

  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。

  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字节的字符串,缺省是返回整个表达式。
  所返回的数据类型是内部数据类型编码的对应数字。

  NUMBER_FORMAT

  格式  返回结果
  8  8进制符号
  10  10进制符号
  16  16进制符号
  17  单字符

  编码   数据类型       有效于

  1   VARCHAR2     ORACLE7
  2   NUMBER      ORACLE7
  8   LONG      ORACLE7
  12   DATE      ORACLE7
  23   RAW      ORACLE7
  24   LONG RAW     ORACLE7
  69   ROWID      ORACLE7 
  96   CHAR      ORACLE7
  112   CLOB      ORACLE8
  113   BLOB      ORACLE8
  114   BFILE      ORACLE8
  180   TIMESTAMP     ORACLE9i 
  181   TIMESTAMP WITH TIMEZONE   ORACLE9i
  182   INTERVAL YEAR TO MONTH   ORACLE9i
  183   INTERVAL DAY TO SECOND   ORACLE9i
  208   UROWID      ORACLE9i
  231   TIMESTAMP WITH LOCAL TIMEZONE   ORACLE9i 

  USERENV[option]
  基于option返回包含有关当前会话信息的VARCHAR2值。

0
相关文章