CURSOR_TO_XMLSCHEMA

说明

该函数以游标作为输入,将表数据映射为XML模式文档,返回值为XML类型。(兼容PostgreSQL)

语法

cursor_to_xmlschema ::=

参数

cursor_name

游标名称,不能为空,使用前必须打开。

bool_nulls

该参数决定是否在结果中展开null值。

bool_tableforest

  • true:输出xml片段。
  • false:输出xml文档。

text_targetns

指定想要结果的XML命名空间。若不指定,应传递一个空字符串。

示例

--  清理环境
SQL> DROP TABLE xmltbl;
SQL> DEALLOCATE XC;

--  创建表并插入数据
SQL> CREATE TABLE xmltbl (a int, b text);
SQL> INSERT INTO xmltbl VALUES (1, 'one'), (2, 'two'), (-1, null);

--  声明游标
SQL> DECLARE XC CURSOR FOR SELECT * FROM xmltbl ORDER BY 1, 2;

--  打开游标
SQL> OPEN XC;

--  利用cursor_to_xmlschema函数将表数据映射成xml模式文档
SQL> SELECT CURSOR_TO_XMLSCHEMA('XC'::refcursor, false, true, '');
                                   CURSOR_TO_XMLSCHEMA
-----------------------------------------------------------------------------------------
 <xsd:schema
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <xsd:simpleType name="INTEGER">
   <xsd:restriction base="xsd:int">
     <xsd:maxInclusive value="2147483647"/>
     <xsd:minInclusive value="-2147483648"/>
   </xsd:restriction>
 </xsd:simpleType>

 <xsd:simpleType name="UDT.OSRDB.INFO_SCHEM.TEXT">
   <xsd:restriction base="xsd:string">
   </xsd:restriction>
 </xsd:simpleType>

 <xsd:complexType name="RowType">
   <xsd:sequence>
     <xsd:element name="A" type="INTEGER" minOccurs="0"></xsd:element>
     <xsd:element name="B" type="UDT.OSRDB.INFO_SCHEM.TEXT" minOccurs="0"></xsd:element>
   </xsd:sequence>
 </xsd:complexType>

 <xsd:element name="row" type="RowType"/>

 </xsd:schema>
(1 row)

--  关闭游标
SQL> CLOSE XC;

--  释放游标
SQL> DEALLOCATE XC;

--  删除表
SQL> DROP TABLE xmltbl;