XMLCOLATTVAL

構文

目的

XMLCOLATTVALは、XMLフラグメントを作成し、各XMLフラグメントの名前がcolumn、属性がnameとなるように、結果としてできたXMLを展開します。

AS句を使用して、name属性の値を列名以外の値に変更できます。この場合、文字列リテラルのc_aliasを指定するか、またはEVALNAME value_exprを指定します。後者の場合は、値の式が評価され、その結果(文字列リテラル)が別名として使用されます。この別名は、初期化パラメータがMAX_STRING_SIZE = STANDARDの場合は最大4,000文字になります。また、MAX_STRING_SIZE = EXTENDEDの場合は最大32,767文字になります。詳細は、「拡張データ型」を参照してください。

value_exprの値を指定する必要があります。value_exprがNULLの場合、要素は戻されません。

XMLColAttValの制限事項

value_exprにはオブジェクト型の列を指定できません。

次の例では、従業員のサブセットに対してEmp要素を作成します。このとき、Empの内容として、employee_idlast_nameおよびsalaryの各要素がネストされます。ネストされた各要素にはcolumnという名前が付き、属性値として列名を持つname属性が与えられます。

SELECT XMLELEMENT("Emp",
   XMLCOLATTVAL(e.employee_id, e.last_name, e.salary)) "Emp Element"
   FROM employees e
   WHERE employee_id = 204;

Emp Element
--------------------------------------------------------------------
<Emp>
  <column name="EMPLOYEE_ID">204</column>
  <column name="LAST_NAME">Baer</column>
  <column name="SALARY">10000</column>
</Emp>

これらの2つのファンクションの出力の比較については、「XMLFOREST」の例を参照してください。