病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« WPS的页面设置浏览器与个人信息安全 »

ORA-01427错误与rownum

  ORA-01427:single-row subquery returns more than one row,单行子查询返回多行,所以Oracle还是能不用子查询就不用子查询,用表连接就不会有这个麻烦,虽然有主表会有重复,至少查询结果能出来,比起出现ORA-01427错误后连累程序执行不下去的好。如果出现这个01427错误,而且一定要用子查询,比如懒得再改,那么能找到重复的子查询记录进行修改当然好,找不到的话,Oracle可以用rownum解决。

  通过用rownum限制子查询的记录条数,比如select ...from table1 where rownum=1,这样只取符合条件的记录中的第一条记录,也可以用rownum<=1、rownum<2,也是只取第一条。如果想多取几条,比如取符合条件记录中的前10条,就是rownum<=10,但别指望用它查到符合条件的第10条,比如rownum=10,不光是10,从2开始都不行,只有rownum=1才行,其它的自然数都不能用等号,同样不能用的是大于号,rownum>1也是错误的。另外,注意rownum是对原始记录的序号,不是查询出结果后再排的序号,所以它只和原始数据插入表时的顺序有关。

ORA-01427错误与rownum

  用rownum也不是没用麻烦,就是子查询的结果最终被取出的记录可能是错误的,或者你本来就是想要得到重复的多条记录,对于后者还是表连接,前者去检查数据吧,rownum在对付01427时只是让程序继续下去的一种手段。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2045.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2018 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog. 闽ICP备09000343号

闽公网安备 35010202000133号