查看: 1696|回复: 1

小试ORACLE XML

[复制链接]
论坛徽章:
22
ITPUB元老
日期:2006-12-13 17:04:38ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:兔
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:鸡
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10授权会员
日期:2006-12-13 17:02:18
发表于 2007-11-26 14:59 | 显示全部楼层 |阅读模式
1、判断一下数据库中xml功能是否已经安装成功
     
        
        C:\>sqlplus /nolog                                                      
                                                                           
        SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 26 10:35:23 2007
                                                                        
        Copyright (c) 1982, 2005, Oracle.  All rights reserved.                  
                                                                        
        idle>conn sys/sys@doscdb as sysdba                                 
        已连接。                                                                 
        
        
        DOSCDB(sys)>select * from v$version;                                             
                                                                                          
        BANNER                                                                           
        ----------------------------------------------------------------------------------
        Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod                  
        PL/SQL Release 10.2.0.1.0 - Production                                            
        CORE    10.2.0.1.0      Production                                                
        TNS for 32-bit Windows: Version 10.2.0.1.0 - Production                           
        NLSRTL Version 10.2.0.1.0 - Production                                            
        
               
        DOSCDB(sys)>select username from dba_users;               
                                                                  
        USERNAME                                                   
        -----------------------------------------------------------
        DIP                                                        
        TSMSYS                                                     
        DBSNMP                                                     
        SYSMAN                                                     
        MDSYS                                                      
        ORDSYS                                                     
        CTXSYS                                                     
        ANONYMOUS                                                  
        EXFSYS                                                     
        DMSYS                                                      
        WMSYS                                                      
        XDB                                                        
        ORDPLUGINS                                                
        SI_INFORMTN_SCHEMA                                         
        MGMT_VIEW                                                  
        SYS                                                        
        SYSTEM                                                     
        OUTLN                                                      
        UOA                                                        
        UBASE                                                      
        UWF                                                        
        UOCEAN                                                     
        UBI                                                        
        UTEMP                                                      
                                                           
        已选择24行。                                               
        
       --存在XDB用户
      
        DOSCDB(sys)>DESCRIBE RESOURCE_VIEW;                                                                 
         名称                                                  是否为空? 类型                              
         ----------------------------------------------------- -------- ------------------------------------
         RES                                                            XMLTYPE(XMLSchema "http://xmlns.orac
                                                                        le.com/xdb/XDBResource.xsd" Element
                                                                        "Resource")                        
         ANY_PATH                                                       VARCHAR2(4000)                     
         RESID                                                          RAW(16)                             
        
        --从RESOURCE_VIEW 信息中可以判断XDB功能已经安装完成
        
2、准备xml_test.xml文件,并放在e:\testxml目录下

        
        --xml_test.xml文件内容
                                                                                                                                    
        <xwork>                                                                                                            
            <include file="webwork-default.xml"/>                                                                           
                <package name="default" extends="webwork-default">                                                         
                <Refpeng>PENG XML_TEST </Refpeng>                                                                           
                        <result-types>                                                                                      
                                <result-type1 name="excel" class="com.hisoft.web.view.ExcelResult"/>                        
                                <result-type2 name="excelReport" class="com.hisoft.web.view.ExcelReportResult"/>            
                        </result-types>                                                                                    
                                                                                                                            
                        <interceptors>                                                                                      
                                <interceptor name="auth" class="com.hisoft.web.interceptor.RoleInterceptor" />              
                                <interceptor name="XData" class="com.hisoft.web.interceptor.XDataInterceptor" />            
                                <interceptor-stack name="roleStack">                                                        
                                        <interceptor-ref name="defaultStack"/>                                             
                                        <interceptor-ref name="auth"/>                                                      
                                </interceptor-stack>                                                                           
                        </interceptors>                                                                                    
                                                                                                                           
                    <!-- global results -->                                                                                    
                    <global-results>                                                                                       
                          <result name="error" type="freemarker">/WEB-INF/pages/globalError.ftl</result>                    
                          <result name="redirect" type="freemarker">/WEB-INF/pages/redirect.ftl</result>                    
                          <result name="login" type="freemarker">/WEB-INF/pages/login.ftl</result>                          
                    </global-results>                                                                                       
                                                                                                                           
                   <action name="login" class="com.hisoft.web.action.LoginAction">                                          
                    <result name="success" type="freemarker">/WEB-INF/pages/globalredirect.ftl</result>                     
                    <result name="input" type="freemarker">/WEB-INF/pages/login.ftl</result>                                
                    <interceptor-ref name="validationWorkflowStack" />                                                      
                </action>                                                                                                   
                                                                                                                    
                        <action name="index" class="com.opensymphony.xwork.ActionSupport">                                 
                    <result name="success" type="freemarker">/WEB-INF/pages/index.ftl</result>                              
                    <interceptor-ref name="roleStack" />                                                                    
                </action>                                                                                                   
                                                                                                                    
                        <action name="left" class="com.hisoft.web.action.LeftMenuAction">                                   
                    <result name="success" type="freemarker">/WEB-INF/pages/leftmenu.ftl</result>                           
                    <interceptor-ref name="roleStack" />                                                                    
                </action>                                                                                                   
                                                                                                                           
                <action name="top" class="com.hisoft.web.action.TopAction">                                                
                    <result name="success" type="freemarker">/WEB-INF/pages/top.ftl</result>                                
                    <interceptor-ref name="roleStack" />                                                                    
                </action>                                                                                                   
                                                                                                                           
                <action name="main">                                                                                       
                    <result name="success" type="freemarker">/WEB-INF/pages/welcome.ftl</result>                           
                    <interceptor-ref name="roleStack" />                                                                    
                </action>                                                                                                   
                                                                                                                           
                <action name="exportExcel" class="com.hisoft.web.action.ExportExcelAction">                                 
                                <result name="success" type="excel">                                                        
                                        <param name="filename">product.</param>                                             
                                </result>                                                                                   
                        </action>                                                                                          
                                                                                                                            
                        <action name="exportExcelReport" class="com.hisoft.web.action.ExportExcelListAction">               
                                <result name="success" type="excelReport">                                                  
                                        <param name="filename">product</param>                                             
                                        <param name="template">/WEB-INF/pages/product.xls</param>                           
                                </result>                                                                                   
                        </action>                                                                                           
            </package>                                                                                                      
                                                                                                                    
        </xwork>                                                                                                            
        
3、创建xml表,用来存储xml 数据

           DOSCDB(sys)>create table xml_test of xmltype;                                                      
                                                                                                   
           表已创建。                                                                                          
                                                                                                   
           DOSCDB(sys)>desc xml_test;                                                                          
            名称                                                  是否为空? 类型                              
            ----------------------------------------------------- -------- ------------------------------------
            TABLE of XMLTYPE                                                                                   
            
           DOSCDB(sys)>CREATE DIRECTORY xmldir AS 'e:\testxml\';
                                                                 
           目录已创建。                                         
           
           DOSCDB(sys)>INSERT INTO xml_test VALUES (XMLType(bfilename('XMLDIR', 'testxml.xml'),
             2   nls_charset_id('AL32UTF8')));                                                
                                                                                    
           已创建 1 行。                                                                       
                                                                                    
           DOSCDB(sys)>commit;                                                                 
                                                                                    
           提交完成。     
           
4、如何使用呢,既然存储进去了,当然是为了更好的使用了


           DOSCDB(sys)>desc user_xml_tables;                                                                                                                                                  
            名称                                                  是否为空? 类型                              
            ----------------------------------------------------- -------- ------------------------------------
            TABLE_NAME                                                     VARCHAR2(30)                        
            XMLSCHEMA                                                      VARCHAR2(700)                       
            SCHEMA_OWNER                                                   VARCHAR2(30)                        
            ELEMENT_NAME                                                   VARCHAR2(2000)                     
            STORAGE_TYPE                                                   VARCHAR2(17)                        
                                                                                                   
           DOSCDB(sys)>select table_name from user_xml_tables;                                                
                                                                                                   
           TABLE_NAME                                                                                          
           ------------------------------------------------------------                                       
           XML_TEST   
           
           
           --取得所有文档的内容
                                                                                                   
           DOSCDB(sys)>SELECT OBJECT_VALUE from xml_test;                                                                                                                                               
                                                                                                               
           OBJECT_VALUE                                                                                       
           ----------------------------------------------------------------------------------------------------
           <xwork>                                                                                             
             <include file="webwork-default.xml"/>                                                            
             <package name="default" extends="webwork-default">                                                
               <Refpeng>PENG XML_TEST </Refpeng>                                                               
               <result-types>                                                                                 
                 <result-type1 name="excel" class="com.hisoft.web.view.ExcelResult"/>                          
                 <result-type2 name="excelReport" class="com.hisoft.web.view.ExcelReportResult"/>              
               </result-types>                                                                                 
               <interceptors>                                                                                 
                 <interceptor name="auth" class="com.hisoft.web.interceptor.RoleInterceptor"/>                 
                 <interceptor name="XData" class="com.hisoft.web.interceptor.XDataInterceptor"/>               
                 <interceptor-stack name="roleStack">                                                         
                   <interceptor-ref name="defaultStack"/>                                                      
                    
               <action name="left" class="com.hisoft.web.action.LeftMenuAction">                              
                 <result name="success" type="freemarker">/WEB-INF/pages/leftmenu.ftl</result>                 
                 <interceptor-ref name="roleStack"/>                                                           
               </action>                                                                                       
               <action name="top" class="com.hisoft.web.action.TopAction">                                    
                 <result name="success" type="freemarker">/WEB-INF/pages/top.ftl</result>                     
                 <interceptor-ref name="roleStack"/>                                                           
               </action>                                                                                       
               <action name="main">                                                                           
                 <result name="success" type="freemarker">/WEB-INF/pages/welcome.ftl</result>                  
                 <interceptor-ref name="roleStack"/>                                                           
               </action>                                                                                       
               <action name="exportExcel" class="com.hisoft.web.action.ExportExcelAction">                     
                 <result name="success" type="excel">                                                         
                   <param name="filename">product.</param>                                                     
                 </result>                                                                                    
               </action>                                                                                       
               <action name="exportExcelReport" class="com.hisoft.web.action.ExportExcelListAction">           
                 <result name="success" type="excelReport">                                                   
                   <param name="filename">product</param>                                                      
                   <param name="template">/WEB-INF/pages/product.xls</param>                                   
                 </result>                                                                                    
               </action>                                                                                       
             </package>                                                                                       
           </xwork>                                                                                            
           
           
           --取得<xwork>内的内容
                     
           DOSCDB(sys)>SET LONG 10000                                                                          
           DOSCDB(sys)>SET PAGESIZE 100                                                                        
           DOSCDB(sys)>SELECT extract(OBJECT_VALUE, '/xwork')                                                  
             2    FROM xml_test;                                                                              
           
           DOSCDB(sys)>SELECT extract(OBJECT_VALUE, '/xwork/package')                                                                                                                                   
             2  from xml_test;                                                                                 
                                                                                                               
           EXTRACT(OBJECT_VALUE,'/XWORK/PACKAGE')                                                              
           ----------------------------------------------------------------------------------------------------
           <package name="default" extends="webwork-default"><Refpeng>PENG XML_TEST </Refpeng><result-types><re
           sult-type1 name="excel" class="com.hisoft.web.view.ExcelResult"/><result-type2 name="excelReport" cl
           ass="com.hisoft.web.view.ExcelReportResult"/></result-types><interceptors><interceptor name="auth" c
           lass="com.hisoft.web.interceptor.RoleInterceptor"/><interceptor name="XData" class="com.hisoft.web.i
           /pages/login.ftl</result><interceptor-ref name="valida
           tionWorkflowStack"/></action><action name="index" class="com.opensymphony.xwork.ActionSupport"><resu
           lt name="success" type="freemarker">/WEB-INF/pages/index.ftl</result><interceptor-ref name="roleStac
           k"/></action><action name="left" class="com.hisoft.web.action.LeftMenuAction"><result name="success"
            type="freemarker">/WEB-INF/pages/leftmenu.ftl</result><interceptor-ref name="roleStack"/></action><
           action name="top" class="com.hisoft.web.action.TopAction"><result name="success" type="freemarker">/
           WEB-INF/pages/top.ftl</result><interceptor-ref name="roleStack"/></action><action name="main"><resul
           t name="success" type="freemarker">/WEB-INF/pages/welcome.ftl</result><interceptor-ref name="roleSta
           ck"/></action><action name="exportExcel" class="com.hisoft.web.action.ExportExcelAction"><result nam
           e="success" type="excel"><param name="filename">product.</param></result></action><action name="expo
           rtExcelReport" class="com.hisoft.web.action.ExportExcelListAction"><result name="success" type="exce
           lReport"><param name="filename">product</param><param name="template">/WEB-INF/pages/product.xls</pa
           ram></result></action></package>                                                                    
           
5、牛刀小试                  
          --简单访问
         
                  DOSCDB(sys)>SELECT extract(OBJECT_VALUE, '/xwork/package/Refpeng')                                 
                    2  from xml_test;                                                                                 
                                                                                                                     
                  EXTRACT(OBJECT_VALUE,'/XWORK/PACKAGE/REFPENG')                                                      
                  ----------------------------------------------------------------------------------------------------
                  <Refpeng>PENG XML_TEST </Refpeng>                                                                  
                  
                  
         
           --访问一下属性值看看
           
                  DOSCDB(sys)>SELECT extractvalue(OBJECT_VALUE, '/xwork/package/Refpeng')                             
                    2  from xml_test;                                                                                                           
                                                                                                                                                                                                      
                  EXTRACTVALUE(OBJECT_VALUE,'/XWORK/PACKAGE/REFPENG')                                                
                  ----------------------------------------------------------------------------------------------------
                  PENG XML_TEST
           
           --小试 where
                                                                                             
           
                  DOSCDB(sys)>SELECT extractValue(OBJECT_VALUE, '/xwork/package/Refpeng') "Peng Test"         
                    2  FROM xml_test                                                                           
                    3  WHERE existsNode(OBJECT_VALUE,                                                         
                    4                     '/xwork/package[Refpeng="PENG XML_TEST "]') = 1;                     
                                                                                                               
                  Peng Test                                                                                    
                  ---------------------------------------------------------------------------------------------
                  PENG XML_TEST                                                                                
                  
           
           --小试update
           
                   DOSCDB(sys)>UPDATE xml_test                                                              
                     2    SET OBJECT_VALUE =                                                   
                     3          updateXML(OBJECT_VALUE,                                                      
                     4                    '/xwork/package/Refpeng/text()',                  
                     5                    'PENG XML_UPDATE_TEST'                             
                     6                    )                                                  
                     7    WHERE existsNode(OBJECT_VALUE,                                    
                     8                       '/xwork/package[Refpeng="PENG XML_TEST "]') = 1;
                                                                                             
                   已更新 1 行。                                                            
                                                                                 
                   DOSCDB(sys)>COMMIT;                                                      
                                                                                 
                   提交完成。                                                               
                  
                   DOSCDB(sys)>SELECT extractValue(OBJECT_VALUE, '/xwork/package/Refpeng') "Peng Test"                 
                     2  FROM xml_test                                                                                 
                     3  /                                                                                             
                                                                                                            
                   Peng Test                                                                                          
                   ----------------------------------------------------------------------------------------------------
                   PENG XML_UPDATE_TEST
论坛徽章:
24
授权会员
日期:2007-03-03 23:55:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB季度 技术新星
日期:2011-11-18 16:54:31玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
发表于 2007-11-26 15:26 | 显示全部楼层
xml还不熟悉

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表