ORACLE SQL リファレンス(逆引き)


Web oracle.se-free.com
レコード別にXMLtypeインスタンスを出力する1( XMLCONCAT、XMLELEMENT )
スポンサード リンク

レコード別にXMLtypeインスタンスを出力するには、XMLCONCAT関数、XMLELEMENT関数を使用します。

SELECT
 XMLCONCAT(
   XMLELEMENT
( 要素名1 , 項目1 ),
   XMLELEMENT( 要素名2 , 項目2 ),・・・
FROM 表

SELECTの結果をXMLtypeインスタンスで返します。

XMLELEMENTの第一引数で、要素名を、第二引数で出力項目名を指定します。
※XMLType型は、XML文書をCLOB型に格納したものなので、クライアント側でSELECTしたらCLOBデータとして操作します。


サンプル表「EMP」のデータ

SQL> SELECT * FROM EMP;

EMP_ID DEPT_ID EMP_NAME SALARY
-----  -----  --------- ----------
E01    D01    なまえ1    150
E02    D02    なまえ2    300
E03    D03    なまえ3    



例1) 表「emp 」にselect結果をXMLで出力します。

SQL> select
  2  xmlconcat( xmlelement( "id", emp_id ),
  3  xmlelement( "name", emp_name ),
  4  xmlelement( "sal", salary )) as xml_out
  5 from emp;

XML_OUT
------------------------------------------------------------------------------

<ID>E01 </ID><NAME>なまえ1</NAME><SAL>150</SAL>
<ID>E02 </ID><NAME>なまえ2</NAME><SAL>300</SAL>
<ID>E03 </ID><NAME>なまえ3</NAME><SAL></SAL>


 ※最後のレコードは、SALARY=NULLなので、空要素が出力されます。


スポンサード リンク


レコード別に整形式のXMLtypeインスタンスを出力する( SYS_XMLGEN )
複数レコードを1レコードにまとめて整形式のXMLtypeインスタンスを出力する( SYS_XMLAGG、SYS_XMLGEN )
レコード別にXMLtypeインスタンスを出力する1( XMLCONCAT、XMLELEMENT )
レコード別にXMLtypeインスタンスを出力する2( XMLFOREST )
複数レコードを1レコードにまとめてXMLtypeインスタンスを出力する( XMLAGG、XMLELEMENT )
属性名を指定してレコード別にXMLtypeインスタンスを出力する1( XMLATTRIBUTES、XMLELEMENT )
属性名を指定してレコード別にXMLtypeインスタンスを出力する2( XMLCOLATTVAL )

SQL(DML2) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ