Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->数据库应用 ->Oracle ->Oracle XQuery查询、构建和转换XML
  相关分类: 
Access
DB2
Mysql
Oracle
PostgreSQL
SQL Server
Sybase
其他数据库
  站内搜索: 
热门文章排行
热门文章排行 Oracle 10gR2 RAC + RHEL AS4U2 (04-22)
深刻理解Oracle数据库的启动和关闭(04-17)
设计和实施Oracle RAC项目 (04-23)
Oracle XQuery查询、构建和转换XML (04-23)
分享:我的oracle9i学习笔记 (04-23)
精采文章排行
精采文章排行 怎样保持Oracle数据优良性能的若干诀(06-29)
讲解基于Oracle高性能动态SQL程序开(06-29)
如何恢复只有完好数据文件的Oracle数(06-29)
八个学习点帮助你全面认识Oracle数据(06-29)
轻松六步使你的Oracle存储过程迅速加(06-29)
  ·浅析Oracle数据库的最大可用性体系结构 ·在Oracle 9i中Form Builder使用树心得 ·Oracle 9i应用COMPOSE和UNISTR创建沉音 ·Oracle巧取指定记录以及巧用外关联查询 ·快速掌握Oracle数据库游标的使用方法 ·你对Oracle数据库字符集究竟认识多少? ·讲解Oracle数据库之中数据安全完全分析 ·讲解Oracle数据库中LONG类型字段的存取 ·Oracle数据库中创建表时怎样考虑列顺序

Oracle XQuery查询、构建和转换XML

作者:Webmaster   来源:Oracle    点击:   日期:2007-04-23 [收藏] [投稿]

  IE是否经常中毒?推荐您

  在 Oracle 数据库 10g 第 2 版中,Oracle 引入了一个与该数据库集成的全功能自带 XQuery 引擎,该引擎可用于完成与开发支持 XML 的应用程序相关的各种任务。XQuery 是一种用于处理 XML 数据模型的查询语言,它实际上可操作任何类型的可用 XML 表达的数据。尽管 Oracle XQuery 实施使您可以使用数据库数据和外部数据源,但在处理数据库中存储的结构化数据方面,Oracle XML DB 通常可以显著提高性能。

  本文提供的示例不仅演示了在什么场合下以及怎么样使用 XQuery 查询、构建和转换 XML,而且还演示了怎么样监控和分析 XQuery 表达式的性能执行,从而找到更高效的方法来处理同一工作负载。

  基于关系数据构建 XML

  在需要的情况下(例如,向 Web 服务发送结果),您可能要基于关系数据构建 XML。要在 Oracle 数据库 10g 第 2 版之前的版本中完成此任务,通常需要使用 SQL/XML 生成函数,如 XMLElement、XMLForest 和 XMLAgg()。在 Oracle 数据库 10 g 第 2 版中,XQuery 将比这些函数更为高效。具体而言,在 XQuery 表达式内部使用 ora:view XQuery 函数,您可以查询现有的关系表或视图以及即时构建 XML,从而不必通过关系数据显式创建 XML 视图。列表 1 中的 PL/SQL 代码演示了怎么样使用 ora:view 基于示例数据库模式 HR 的默认员工关系表中存储的数据构建 XML 文档。

  列表 1:使用 ora:view 基于关系数据创建 XML

BEGIN
IF(DBMS_XDB.CREATEFOLDER('/public/employees')) THEN
DBMS_OUTPUT.PUT_LINE('Folder is created');
ELSE
DBMS_OUTPUT.PUT_LINE('Cannot create folder');
END IF;
COMMIT;
END;
/
DECLARE
XMLdoc XMLType;
BEGIN
SELECT XMLQuery(
'for $j in 1
return (
   {
for $i in ora:view("HR", "employees")/ROW
where $i/EMPLOYEE_ID <= 102
return (
{xs:string($i/EMPLOYEE_ID)}
{xs:string($i/LAST_NAME)}
{xs:integer($i/SALARY)}
           )} )'
RETURNING CONTENT) INTO XMLdoc FROM DUAL;
IF(DBMS_XDB.CREATERESOURCE('/public/employees/employees.xml', XMLdoc)) THEN
DBMS_OUTPUT.PUT_LINE('Resource is created');
ELSE
DBMS_OUTPUT.PUT_LINE('Cannot create resource');
END IF;
COMMIT;
END;
/


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 3 4 5 6 7 8 9 10 下一页

上一篇:Oracle数据库的备份及恢复策略研究   下一篇:Oracle OCCI的一个简单的包装类的实现
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·迅速安装Linux与Oracle数据库步骤精讲

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。