oracle 存储过程游标查询使用/*+rule*/,查询有时结果返回不正确
存储过程中使用游标取值,游标查询条件是BOXNO=,大部分情况正常,但偶尔会出现一个BOXNO中明明是有8个值的,但游标查询到的会少于8个,再运行一次存储过程的时候,游标...
存储过程中使用游标取值,游标查询条件是BOXNO=,大部分情况正常,但偶尔会出现一个BOXNO中明明是有8个值的,但游标查询到的会少于8个,再运行一次存储过程的时候,游标查询到的又会是8个,不知道为什么会这样
展开
1个回答
展开全部
rule代表RBO是 oracle已经废弃和不再支持的一个优化器模式,如果出现了bug 那么也不提供补丁和解决方法。 如果你坚持用rule 那么没有其他解决方案, 95%以上的系统都采用CBO 而不再采用RULE 的RBO
askmaclean oracle
askmaclean oracle
更多追问追答
追问
本来存储过程中我是没有强制使用何种优化器的,是发现查询语句本身执行很快,但是放在存储过程中就会很慢的时候,想到可能是ORACLE的执行计划有问题,才强制使用了规则的优化器,使用过程中就发现了这样的查询结果错误的问题,CBO方式请提供示例,谢谢!
追答
一般 不加 rule 这个hint 就是CBO
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询