小试ORACLE XML

[复制链接]
查看11 | 回复1 | 2006-12-13 17:04:38 | 显示全部楼层 |阅读模式
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

CORE10.2.0.1.0Production

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文件内容










PENG XML_TEST










































/WEB-INF/pages/globalError.ftl


/WEB-INF/pages/redirect.ftl


/WEB-INF/pages/login.ftl








/WEB-INF/pages/globalredirect.ftl


/WEB-INF/pages/login.ftl











/WEB-INF/pages/index.ftl











/WEB-INF/pages/leftmenu.ftl











/WEB-INF/pages/top.ftl











/WEB-INF/pages/welcome.ftl













product.












product


/WEB-INF/pages/product.xls












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

----------------------------------------------------------------------------------------------------








PENG XML_TEST





























/WEB-INF/pages/leftmenu.ftl









/WEB-INF/pages/top.ftl









/WEB-INF/pages/welcome.ftl











product.










product


/WEB-INF/pages/product.xls











--取得内的内容


DOSCDB(sys)>SET LONG 10000

DOSCDB(sys)>SET PAGESIZE 100

DOSCDB(sys)>SELECT extract(OBJECT_VALUE, '/xwork')


2FROM xml_test;


DOSCDB(sys)>SELECT extract(OBJECT_VALUE, '/xwork/package')


2from xml_test;



EXTRACT(OBJECT_VALUE,'/XWORK/PACKAGE')

----------------------------------------------------------------------------------------------------
PENG XML_TEST /WEB-INF/pages/index.ftl/WEB-INF/pages/leftmenu.ftl/
WEB-INF/pages/top.ftl/WEB-INF/pages/welcome.ftlproduct.product/WEB-INF/pages/product.xls


5、牛刀小试


--简单访问



DOSCDB(sys)>SELECT extract(OBJECT_VALUE, '/xwork/package/Refpeng')


2from xml_test;




EXTRACT(OBJECT_VALUE,'/XWORK/PACKAGE/REFPENG')


----------------------------------------------------------------------------------------------------

PENG XML_TEST







--访问一下属性值看看


DOSCDB(sys)>SELECT extractvalue(OBJECT_VALUE, '/xwork/package/Refpeng')


2from xml_test;




EXTRACTVALUE(OBJECT_VALUE,'/XWORK/PACKAGE/REFPENG')


----------------------------------------------------------------------------------------------------

PENG XML_TEST

--小试 where




DOSCDB(sys)>SELECT extractValue(OBJECT_VALUE, '/xwork/package/Refpeng') "Peng Test"


2FROM xml_test


3WHERE existsNode(OBJECT_VALUE,


4
'/xwork/package[Refpeng="PENG XML_TEST "]') = 1;




Peng Test


---------------------------------------------------------------------------------------------

PENG XML_TEST




--小试update


DOSCDB(sys)>UPDATE xml_test


2SET OBJECT_VALUE =


3
updateXML(OBJECT_VALUE,


4
'/xwork/package/Refpeng/text()',


5
'PENG XML_UPDATE_TEST'


6
)


7WHERE 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"


2FROM xml_test


3/




Peng Test


----------------------------------------------------------------------------------------------------

PENG XML_UPDATE_TEST
回复

使用道具 举报

千问 | 2006-12-13 17:04:38 | 显示全部楼层
xml还不熟悉
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行