ORACLE XML操作初识
2014-08-25 00:07
357 查看
--创建 CREATE TABLE XMLTEST( RID VARCHAR2(50), XMLSTR XMLTYPE ); --新增 INSERT INTO XMLTEST(RID, XMLSTR) VALUES('1', '<?xml version="1.0" encoding="UTF-8"?> <info> <name><![CDATA[娱乐新闻1]]></name> <abstract><![CDATA[娱乐新闻1]]></abstract> <keyword><![CDATA[娱乐新闻1]]></keyword> <start_time><![CDATA[2009-11-07 10:39:00]]></start_time> <stop_time><![CDATA[2009-11-10 10:39:00]]></stop_time> <author><![CDATA[null]]></author> <content><![CDATA[娱乐新闻1]]></content> <pic_url><![CDATA[100000311006.jpg]]></pic_url> <audio_url><![CDATA[100000311007.jpg]]></audio_url> <video_url><![CDATA[100000311008.jpg]]></video_url> <Owner>TOM</Owner> <Owner>JACK</Owner> <Owner>Grandco</Owner> </info>'); INSERT INTO XMLTEST(rid,XMLSTR) VALUES(2, sys.xmltype.createxml( '<?xml version="1.0"?> <customer> <name>Joe Smith</name> <title>Mathematician</title> </customer>')); INSERT INTO XMLTEST(rid,XMLSTR) VALUES(3, sys.xmltype.createxml( '<?xml version="1.0"?> <customer> <name>Kit</name> <title>Mathematician</title> </customer>')); INSERT INTO XMLTEST(RID, XMLSTR) VALUES('4', '<?xml version="1.0" encoding="UTF-8"?> <stus> <stu> <name alias="jim">jack</name> <age>13</age> <skills part="wwe"> <skill>f5</skill> <skill>ak47</skill> </skills> </stu> <stu> <name alias="">乔峰</name> <age>36</age> <skills></skills> </stu> </stus>'); --查询 --查询全部 SELECT RID,extract(XMLSTR,'/').getStringVal() XMLCONTENT FROM XMLTEST; --判断是否存在 SELECT extract(XMLSTR,'//info').getStringVal() FROM XMLTEST WHERE existsNode(XMLSTR, '//info/name') = 1; --条件查询 SELECT extract(XMLSTR,'//customer').getStringVal() FROM XMLTEST WHERE EXTRACTVALUE(XMLSTR, '//customer/title') = 'Mathematician'; --更新 --追加添加 UPDATE XMLTEST SET XMLSTR = APPENDCHILDXML(XMLSTR, 'customer/name', XMLType('<Owner>Grandco</Owner>')) WHERE EXTRACTVALUE(warehouse_spec, '/customer/name') = 'Rented'; --更新整个文档 UPDATE XMLTEST SET XMLSTR = XMLType('<PurchaseOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://localhost:8080/source/schemas/poSource/xsd/purchaseOrder.xsd"> <Reference>SBELL-2002100912333601PDT</Reference> <Actions> <Action> <User>SVOLLMAN</User> </Action> </Actions> <Reject/> <Requestor>Sarah J. Bell</Requestor> <User>SBELL</User> <CostCenter>S30</CostCenter> <ShippingInstructions> <name>Sarah J. Bell</name> <address>400 Oracle Parkway Redwood Shores CA 94065 USA</address> <telephone>650 506 7400</telephone> </ShippingInstructions> <SpecialInstructions>Air Mail</SpecialInstructions> <LineItems> <LineItem ItemNumber="1"> <Description>A Night to Remember</Description> <Part Id="715515009058" UnitPrice="39.95" Quantity="2"/> </LineItem> <LineItem ItemNumber="2"> <Description>The Unbearable Lightness Of Being</Description> <Part Id="37429140222" UnitPrice="29.95" Quantity="2"/> </LineItem> <LineItem ItemNumber="3"> <Description>Sisters</Description> <Part Id="715515011020" UnitPrice="29.95" Quantity="4"/> </LineItem> </LineItems> </PurchaseOrder>') WHERE RID='3'; --更新节点内容 UPDATE XMLTEST SET XMLSTR = updateXML(XMLSTR, '/PurchaseOrder/Actions/Action[1]/User/text()', 'SKING') WHERE RID='1'; --更新多个节点 update XMLTEST set XMLSTR=updateXML(XMLSTR, '/stus/stu[1]/age/text()', '15', '/stus/stu[2]/name/text()','萧峰', '/stus/stu[2]/name/@alias','乔峰') where rid='4'; --更新为空 update XMLTEST set XMLSTR=null where rid='3'; --数据节点移除为空 update XMLTEST set XMLSTR=updateXML(XMLSTR, '/info/abstract/text()',null ) WHERE rid='1' --插入节点 UPDATE XMLTEST SET XMLSTR = insertChildXML(XMLSTR, '/stus/stu[2]/skills', 'skill', XMLType('<skill note="18z">降龙十八掌</skill>')) WHERE RID='4'; UPDATE XMLTEST SET XMLSTR = insertChildXML(XMLSTR, '/stus/stu[2]/skills', 'skill2', XMLType('<skill2 note="">轻功</skill2>')) WHERE RID='4'; UPDATE XMLTEST SET XMLSTR = insertChildXML(XMLSTR, '/stus/stu[2]/skills', 'skill3', XMLType('<skill3 note="">轻功</skill3>')) WHERE RID='4'; --插入节点before/after --删除节点内容 UPDATE XMLTEST SET XMLSTR = deleteXML(XMLSTR, '/stus/stu[2]/skills/skill0') WHERE existsNode(XMLSTR, '/stus/stu[2]/skills/skill0')= 1 and rid='4'; --删除 DELETE XMLTEST WHERE RID='111';
参考博文:http://blog.csdn.net/z81j06f03/article/details/6072753
相关文章推荐
- Oracle 中 用XMLTYPE类型 解析并操作XML数据
- C# 操作 XML 数据库类型、Oracle XMLType
- Oracle笔记 十四、查询XML操作、操作系统文件
- Oracle之xml的增删改查操作
- Oracle笔记 十四、查询XML操作、操作系统文件
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 【初识Oracle】④数据库对表格数据进行操作(含三张练习用表)
- 【初识Oracle】③数据库对基本数据类型进行操作的函数
- oracle xml数据类型常见操作
- Oracle笔记 十四、查询XML操作、操作系统文件
- Oracle笔记 十四、查询XML操作、操作系统文件
- 关于Oracle的XMLType类型的数据库操作
- Oracle操作XML各种场景介绍
- C# 操作 XML 数据库类型、Oracle XMLType
- Oracle笔记 十四、查询XML操作、操作系统文件
- Oracle笔记 十四、查询XML操作、操作系统文件
- oracle sql操作xml
- oracle 操作XML
- Oracle笔记 十四、查询XML操作、操作系统文件
- Oracle笔记 十四、查询XML操作、操作系统文件