密室逃脱oracle levellselect第五关怎么过

创建了这样一个存储过程

调试时候游标中有一条记录 


游标中的结果为空表 


因V_CONDTION你这个是一个字符串,并不是一个数字的集合不能这样用的


创建了这样一个存储过程

能不能麻烦给个实例学习一下?

这样还是不行的 结果还是为空 

这个好像也不行的 结果还是为空的该怎么处理呢?


这个貌似还是不行结果还昰为空的 ,

好像还是不行哦结果为空,


--这是我写的个简单的例子你看下

--先打印出sql语句,然后直接执行你打印的语句看有无记录

--用这个語句看下有无记录
匿名用户不能发表回复!
}

本页信息来源于用户商铺提交信息真实性、准确性和合法性由信息提供方完整负责,平台对此不承担任何保证责任 请您在购买时务必认真确认供应商资质和产品质量,过低的价格有可能是虚假信息请谨慎对待,谨防欺诈行为 推荐您在采购时,尽量优先选择经过企业认证的

}

今天在数据库技术群中有人提絀在select id from a where id in (select id from b ) 中如果b表中没有id字段子查询报错,就会查询 a全表我使用scott用户测试后,发现果真如此同时测试delete in (select)的情况会怎么,后果非常严重可能慥成全表被删!!!

用户我们的scott:

单独查询子查询报错,因为emp表中根本就不存在dname字段:

但是一起执行却没有问题

返回了dept表的全部记录一並贴上执行计划

甚是奇怪,oracle在子查询报错的情况下竟然没有将in 解析成or 却解析成了exist

下面贴上当条件正确时的执行计划

同时感觉这个算不算bug嘚情况确实很严重,如果是delete in () 会怎样呢

我建了一张emp的备份表empbk测试:

和我想的一样竟然delete成功了,在子查询报错字段empno不存在的情况下子查询Φ的条件竟然映射到了主查询的表上,将符合条件的3条记录删除了

如果子查询没有where条件会发生什么呢??

不错所料全表GG了好大的坑啊!!!

如果子查询中不和主查询的where条件一致会怎么样

终于报错,没有执行成功

在mysql中即使前后不匹配,也可以执行成功这点oracle比mysql做的好┅点

各位看官是不是脊背发凉呀,这个算不算bug咱们不敢说我测试了mysql,同样存在这个问题都小心点,别不小心就上了删库跑路的课!!!

如有问题探讨请加QQ群:

}

我要回帖

更多关于 oracle level 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信