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_id
、last_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」の例を参照してください。