WEB开发网
开发学院数据库Oracle Oracle XQuery查询、构建和转换XML 阅读

Oracle XQuery查询、构建和转换XML

 2007-05-05 12:04:35 来源:WEB开发网   
核心提示: 但在某些情况下,很难发现 XQuery 表达式的哪个构造将使某些查询的性能更好,Oracle XQuery查询、构建和转换XML(10),这就是为什么最好在开发阶段使用调整工具的原因,将动态变量绑定到 XQuery 表达式另一种可以显著提高 XQuery 表达式执行性能的技术是使用绑定动态

但在某些情况下,很难发现 XQuery 表达式的哪个构造将使某些查询的性能更好。这就是为什么最好在开发阶段使用调整工具的原因。

将动态变量绑定到 XQuery 表达式

另一种可以显著提高 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

上一页  5 6 7 8 9 10 

Tags:Oracle XQuery 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接