XMLATTRIBUTES

XMLATTRIBUTES 函数将通过自变量构造 XML 属性。

读取语法图跳过可视语法图XMLATTRIBUTES (,attribute-value-表达式ASattribute-名称)

此函数只能用作 XMLELEMENT 函数的自变量。 结果是一个 XML 序列,其中包含每个非空 attribute-value-expression 参数的 XML 属性。

属性值表达式
结果为属性值的表达式。 attribute-value-expression 的数据类型不得为 ROWID , DATALINK , XML 或基于 ROWID , DATALINK 或 XML 的单值类型。 该表达式可以是任何 SQL 表达式。 如果该表达式不是简单列引用,那么必须指定属性名称。
属性名
指定属性名称。 该名称是必须采用 XML 限定名或 QName 格式的 SQL 标识。 请参阅 W3C XML 名称空间规范以了解有关有效名称的更多详细信息。 属性名称不能是 "xmlns" ,也不能以 "xmlns:" 作为前缀。 名称空间是使用函数 XMLNAMESPACES 声明的。 不允许重复的属性名 (无论是隐式还是显式)。
如果未指定 attribute-name ,那么 attribute-value-expression 必须是列名。 属性名称是根据列名使用从列名至 XML 属性名称的完全转义映射创建的。

此函数的结果为 XML。 如果任何 attribute-value-expression 的结果可以为空,那么结果可以为空; 如果每个 attribute-value-expression 的结果为空,那么结果为空值。

示例

注: XMLATTRIBUTES 不会在输出中插入空格或换行符。 所有示例输出都将格式化以增强可读性。
  • 生成具有属性的元素。
      SELECT E.EMPNO, XMLELEMENT(
        NAME "Emp",
        XMLATTRIBUTES(
         E.EMPNO, E.FIRSTNME ||' '|| E.LASTNAME AS "name"
          )
         )
       AS "Result"
        FROM EMPLOYEE E
        WHERE E.EDLEVEL = 12
    此查询将生成以下结果:
    EMPNO   Result
    000290  <Emp EMPNO="000290" name="JOHN PARKER"/>
    000310  <Emp EMPNO="000310" name="MAUDE SETRIGHT"/>
    200310  <Emp EMPNO="200310" name="MICHELLE SPRINGER"/>