XMLATTRIBUTES

XMLATTRIBUTES 関数は、引数から XML 属性を構成します。

構文図を読む構文図をスキップする
                     .-,--------------------------------------------------.      
                     V                                                    |      
>>-XMLATTRIBUTES--(----attribute-value-expression--+--------------------+-+--)-><
                                                   '-AS--attribute-name-'        

この関数は XMLELEMENT 関数の引数としてのみ使用できます。結果は、NULL 以外の attribute-value-expression 引数ごとに XML 属性が含まれる XML シーケンスです。

attribute-value-expression
結果が属性値になる式。attribute-value-expression のデータ・タイプは、ROWID、DATALINK、XML、および ROWID、DATALINK、XML に基づく特殊タイプであってはなりません。式として、SQL 式を指定することもできます。式が単純な列参照でない場合は、属性名を指定する必要があります。
attribute-name
属性名を指定します。名前は XML 修飾名の形式 (つまり、QName) の SQL ID でなければなりません。有効な名前についての詳細は、W3C XML ネーム・スペースの指定の項目を参照してください。属性名を「xmlns」にしたり、その前に「xmlns:」を付けたりすることはできません。ネーム・スペースは、関数 XMLNAMESPACES を使用して宣言します。(暗黙的であれ明示的であれ) 重複した属性名を使用することはできません。
attribute-name を指定しない場合、attribute-value-expression は列名にする必要があります。属性名は、列名から XML 属性名への完全エスケープ・マッピングを使用して、列名から作成されます。

この関数の結果は XML です。いずれかの attribute-value-expression の結果が NULL になる可能性がある場合は、結果も NULL になる可能性があります。すべての attribute-value-expression の結果が NULL の場合は、結果は NULL 値になります。

注: 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"/>