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
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接