知识大全 用Oracle10g新层次伪列探查层次循环
Posted 知
篇首语:知是行的主意,行是知的功夫。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Oracle10g新层次伪列探查层次循环相关的知识,希望对你有一定的参考价值。
用Oracle10g新层次伪列探查层次循环 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在上一篇文章中 我说明了如何分类层次化查询中的输入项 但是 要使一个层次化查询得以运行 就不能使数据返回到自身 也就是说 一个母行不能把自己或它的一个子行作为自己的母行 如果发生这种情况 Oracle将重复不断地执行这个链接 永远无法到达一个确定的终点
幸运的是 Oracle对这种情况进行测试 并用以下错误信息中止查询
ORA : CONNECT BY loop in user data
过去 我们很难发现一个大型数据集中的所有行彼此引用 因为查询在发现第一个循环时就已经终止 在Oracle g中 SELECT语句的两个新语法元素为你提供了解决这类数据错误的工具 NOCYCLE和CONNECT_BY_ISCYCLE
CONNECT BY子句中增加的NOCYCLE参数指出 即使探查到一个循环 Oracle无论如何也要返回一个行 这为查明哪个行出错提供了极有价值的线索(不用担心——Oracle会停止评估循环 转向下一行 ) 如果当前的行包含一个循环 CONNECT_BY_ISCYCLE伪列将返回 否则将返回 组合使用这两个元素 就能查明需要修复的内容
列表A是和上一篇文章中相同的层次化查询 我们根据HR样本方案执行它
这次我们在数据中介绍另一个循环 将员工Kochhar( )改为向Urman( )报告 Urman向Greenberg( )报告 Greenberg则向Kochhar报告 从而建立一个循环
UPDATE employees
SET manager_id =
WHERE employee_id = ;
MIT;
如果我们重新运行上述查询 将得到ORA 错误 列表B探查我们介绍的错误 我们没有使用CONNECT BY PRIOR 而是使用了CONNECT BY NOCYCLE PRIOR 即使探查到一个循环 它仍然会继续进行查询 我们还在报告中增加了manager_id列和CONNECT_BY_ISCYCLE伪列以帮助解决这个问题
输出结果在Urman行显示 回溯循环链 我们就能发现出错的地方 Kochhar那一行
column Reports To format a set pagesize SELECT LPAD( *(LEVEL ))||last_name Reports To employee_id FROM employees START WITH employee_id IN ( ) CONNECT BY PRIOR employee_id = manager_id / Reports To EMPLOYEE_ID De Haan Hunold Austin Ernst Lorentz Pataballa Kochhar Baer Greenberg Chen Faviet Popp Sciarra Urman Kochhar ERROR: ORA : CONNECT BY loop in user data
cha138/Article/program/Oracle/201311/18866相关参考
Oracle10g中层次查询简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们可以通过ST
Oracle中使用层次查询方便处理财务报表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Ora
Oracle层次查询和with函数的使用示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 开发
Oracle10g新特性—RMAN 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! RMAN增量备
Oracle10g新特性—选择性编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle
Oracle10g最佳20个新特性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!答案依DBA的工作
Oracle10g新特性——选择性编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracl
知识大全 Oracle10g新特性—增强的CONNECTBY子句
Oracle10g新特性—增强的CONNECTBY子句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
知识大全 使用Oracle10g提供的flashback drop新特性
使用Oracle10g提供的flashbackdrop新特性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
第一章安装 目标 完成本课您将能够: *列出新的安装特性 *列出安装性能的增加 安装新特性支持 *数据库存储选项 文件系统 自动存储管理(asm) 裸设备