oracle如何查询xml啊 xmltype数据如下
<root>
 <item>
    <name>xuxuna </name>
    <id> 1</id>
 </item>
  <item>
    <name>lisi </name>
    <id> 2</id>
 </item>
</root>
查询结果为:
name      id
------------------------------
xuxuna     1
lisi       2
OracleXML

解决方案 »

  1.   


    Oracle提供xmltype用于XML数据的存储
    例:
    /**创建见表语句**/
    create table xml_books(book_id number(5), xml_data xmltype);
    /**插入数据**/
    insert into xml_books values(1, xmltype('<book><title>来吧来吧,相约98</title><price>20</price></book>'));
     
    XML数据的操作
     
    existsnode() 用XPATH定位XML中的表达式
    extract() 抽取XML中的节点    
    extractvalue()  取出XML中节点的值
    Updatexml()  用于更新XML数据的属性,节点和节点文本值
     
    /**查询"来吧来吧,相约98"书的价格**/
    select extractvalue(xml_data,'/book/price') from xml_books b where existsnode(xml_data,'/book/title="来吧来吧,相约98" ')=1;
    select extract(xml_data, '/book/name') from xml_books;
    update xml_books set xml_data= updatexml (xml_data,'/book/price/text()',100) where existsnode(xml_data,'/book/title="过把瘾" ')=1;
     
    Create or replace view vw_book(name) as  select extractvalue(xml_data, ‘book/title’) from xml_books;