什么是XMLTABLE

时间:2009-08-03 14:09:29

标签: oracle oracle10g

  1. 什么是XMLTABLE。

  2. 请告诉我创建XMLTABLE的语法

  3. 从XMLTABLE获取记录的示例查询。

  4. 在创建XMLTABLE之前是否需要任何数据库级别的先决条件。

2 个答案:

答案 0 :(得分:7)

函数XMLTABLE用于将xml对象转换为单独的字段。 但是你可能想要构建一个包含xml内容的表,这是不同的。

您可以使用包含xml内容的额外列创建表

CREATE TABLE mytable (my_id NUMBER PRIMARY KEY, my_xml XMLType);

然后在查询中使用xml内容。

INSERT INTO mytable VALUES (1,xmltype('<myxml id="D45"/>'));

SELECT my_id
      ,my_xml.extract('/myxml@id').getstringval()
from mytable

成品。

确定回复第二条评论:

所以你确实想要使用XMLTABLE函数, 您的错误表明您根本没有收到该文件。 所以你需要制作你的网址才能正确加载它。 我用嵌入式xml构建的测试用例是:

 1  SELECT seq
 2        , id
 3        , content
 4  FROM XMLTABLE('/xml/myrec'
 5        PASSING XMLType('<xml>'
 6                      ||'<myrec id="D12"><content>hello1</content></myrec>'
 7                      ||'<myrec id="D13"><content>hello2</content></myrec>
 8                      ||</xml>')
 9        COLUMNS   seq FOR ORDINALITY
10                , id VARCHAR2(100) PATH '@id'
11                , content VARCHAR2(100) PATH 'content'
12*      ) AS my_table

输出是:

 SEQ ID    CONTENT
---- ----- --------------------
   1 D12   hello1
   2 D13   hello2

答案 1 :(得分:0)

XMLTABLE你可能正在寻找的东西。