一个sql查询怪异的情况,求帮忙分析下为什么,想不通

LearyCJY 2015-05-25 08:33:15
事情是这样的,有一个查询:WITH TB_AllGroup AS (SELECT * FROM ( SELECT A.GROUPID,A.GROUPNAME,NVL(B.PGROUPID,0) AS PGROUPID FROM SYSBASE_GROUP A LEFT JOIN SYSBASE_GROUP_RELATION B ON A.GROUPID = B.SGROUPID WHERE A.FLAG != 3 ) TA START WITH TA.GROUPID =64 CONNECT BY PRIOR TA.GROUPID = TA.PGROUPID) SELECT GROUPID as VGROUP_ID,0 AS Type FROM TB_AllGroup UNION ALL SELECT GROUPID as VGROUP_ID,1 AS Type FROM TB_AllGroup;
里面一个递归表和一个信息表,就这个语句,在plsql里面执行了是OK的10条数据,因为union all了相同的数据。但是在C#的程序访问却只有6行,很奇怪。因此我将语句拷贝到sqlplus执行,更神奇的事发生,我将拷贝的语句贴进去加分号按回车后,只返回6行,然后再拷贝进去,按回车,然后加分号,再按回车,出现结果10行,两条的语句一模一样的,为什么会出现这个情况?
附录我的执行的图:


然后我冒险重启了下,重启完了之后两种方法执行的都是返回10条,然后过一阵子,又出现上种情况,实在找不出分析的法子为啥会这样?查看了执行计划几乎都一样,就统计信息有点不一样。求支招。帮忙分析或者给下思路
...全文
249 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2015-05-26
  • 打赏
  • 举报
回复
感觉你的数据库里的数据发生了变化,你得确认一下,这段时间,是不是就你自己在访问数据库。
LearyCJY 2015-05-26
  • 打赏
  • 举报
回复
之前都跑的好好的,而且其他服务器也都跑的好好的
LearyCJY 2015-05-26
  • 打赏
  • 举报
回复
其他的类似的查询也会出现这个问题,相同的语句多了一个回车就这样,哦,是递归的with会这样
LearyCJY 2015-05-26
  • 打赏
  • 举报
回复
可以确认的是数据库里的数据是没有变化的,而且,重启了下服务器就好了,在其他的服务器是不会出现这个情况。Oracle 10g的32位的,是不是服务器少了什么配置之类的?
小灰狼W 2015-05-25
  • 打赏
  • 举报
回复
恐怕是个bug,而且和树形查询有关 你再改写下,把TA里的查询移出来,写成with ta as(.............),tb_allgroup as(.... 试试

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧