oracle 存储过程游标查询使用/*+rule*/,查询有时结果返回不正确

存储过程中使用游标取值,游标查询条件是BOXNO=,大部分情况正常,但偶尔会出现一个BOXNO中明明是有8个值的,但游标查询到的会少于8个,再运行一次存储过程的时候,游标... 存储过程中使用游标取值,游标查询条件是BOXNO=,大部分情况正常,但偶尔会出现一个BOXNO中明明是有8个值的,但游标查询到的会少于8个,再运行一次存储过程的时候,游标查询到的又会是8个,不知道为什么会这样 展开
 我来答
百度网友07553bf0
2014-08-19 · TA获得超过1986个赞
知道大有可为答主
回答量:2464
采纳率:75%
帮助的人:1846万
展开全部
rule代表RBO是 oracle已经废弃和不再支持的一个优化器模式,如果出现了bug 那么也不提供补丁和解决方法。 如果你坚持用rule 那么没有其他解决方案, 95%以上的系统都采用CBO 而不再采用RULE 的RBO

askmaclean oracle
更多追问追答
追问
本来存储过程中我是没有强制使用何种优化器的,是发现查询语句本身执行很快,但是放在存储过程中就会很慢的时候,想到可能是ORACLE的执行计划有问题,才强制使用了规则的优化器,使用过程中就发现了这样的查询结果错误的问题,CBO方式请提供示例,谢谢!
追答
一般 不加 rule 这个hint 就是CBO
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式