Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->数据库应用 ->Oracle ->正文

Oracle XQuery查询、构建和转换XML

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

另一种可以显著提高 XQuery 表达式执行性能的技术是使用绑定动态变量。使用绑定变量(而不是将变量串联为字符串)可以使 Oracle 重用 SQL 语句,从而减少分析开销并显著提高应用程序的性能。可以在 XMLQuery 和 XMLTable SQL 函数中使用 PASSING 子句将动态变量绑定到 XQuery 表达式。该技术使您可以根据客户端代码中计算的参数动态生成 XML。列表 3 中的示例演示了怎么样在从 PHP 脚本执行的 XQuery 查询中使用绑定变量。

  列表 3:使用绑定变量

//File:BindVars.php
$user = 'hr';
$pswd = 'hr';
$db ='(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
          )
(CONNECT_DATA=(SID=orclR2)(SERVER=DEDICATED))
       )';
$empno=100;
$conn = oci_connect($user, $pswd, $db);
$sql = 'SELECT XMLQuery('."'".'for  $i in ora:view("employees")/ROW
where $i/EMPLOYEE_ID = $empno
return (
{$i/EMPLOYEE_ID,
$i/EMAIL,
$i/JOB_ID}
)'."'".'PASSING XMLElement("empno", :empno) AS "empno"
RETURNING CONTENT).GetStringVal() AS RESULT FROM DUAL';
$query = oci_parse($conn, $sql);
oci_bind_by_name($query, ":empno", $empno, 3);
oci_execute($query);
oci_fetch($query);
$str = oci_result($query, 'RESULT');
print $str;
?>
  列表 3 中显示的脚本应生成以下输出(注意,浏览器中可能不会显示标记):

100
SKING
AD_PRES

  XQuery 与 XSLT

  尽管 Oracle 在 Oracle XML DB 中提供了一个自带 XSLT 处理器,但在很多情况下(尤其是在处理大型文档时),XQuery 对于构建 XML 更高效。此外,XQuery 表达式通常比为同一作业设计的 XSLT 样式表更具可读性,并且更清楚。与 XSLT 一样,XQuery 不但可用于将一个 XML 文档转换为另一个 XML 文档,而且还可用于将 XML 转换为另一种基于文本的格式,如 HTML 或 WML。



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



上一篇:Oracle数据库的备份及恢复策略研究   下一篇:Oracle OCCI的一个简单的包装类的实现

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号