XMLFOREST
Syntax
Purpose
XMLForest converts each of its argument parameters to XML, and then returns an XML fragment that is the concatenation of these converted arguments. 
                  
- 
                        
If
value_expris a scalar expression, then you can omit theASclause, and Oracle Database uses the column name as the element name. - 
                        
If
value_expris an object type or collection, then theASclause is mandatory, and Oracle uses the specified expression as the enclosing tag.You can do this by specifying
c_alias, which is a string literal, or by specifyingEVALNAMEvalue_expr. In the latter case, the value expression is evaluated and the result, which must be a string literal, is used as the identifier. The identifier does not have to be a column name or column reference. It cannot be an expression or null. It can be up to 4000 characters if the initialization parameterMAX_STRING_SIZE=STANDARD, and 32767 characters ifMAX_STRING_SIZE=EXTENDED. See "Extended Data Types" for more information. - 
                        
If
value_expris null, then no element is created for thatvalue_expr. 
Examples
The following example creates an Emp element for a subset of employees, with nested employee_id, last_name, and salary elements as the contents of Emp:
                  
SELECT XMLELEMENT("Emp", 
   XMLFOREST(e.employee_id, e.last_name, e.salary))
   "Emp Element"
   FROM employees e WHERE employee_id = 204;
Emp Element
----------------------------------------------------------------
<Emp>
  <EMPLOYEE_ID>204</EMPLOYEE_ID>
  <LAST_NAME>Baer</LAST_NAME>
  <SALARY>10000</SALARY>
</Emp>
Refer to the example for XMLCOLATTVAL to compare the output of these two functions.
