CURSOR_TO_XMLSCHEMA¶
说明¶
该函数以游标作为输入,将表数据映射为XML模式文档,返回值为XML类型。(兼容PostgreSQL)
参数¶
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;