Sys_Connect_By_Path 在10G 第4版的问题

summercat 2009-12-28 04:20:56
在10G 10.2.0.4 下查不出数据,但是在 10.2.0.1 中可以
语句如下
Select Sys_Connect_By_Path(ceseid, ',') as OutStr
From (Select Rownum Rid, Rownum + 1 Next_Rid, ceseid, enable
From (select * from PS_Corporate_structure where enable = 0))
Where Rid =
(Select Count(*)
From (select * from PS_Corporate_structure where enable = 0))
Start With Rid = 1
Connect By Prior Next_Rid = Rid

功能就是行转列,等同于
select wmsys.wm_concat(ceseid) from PS_Corporate_structure

想问数据库是不是要打什么补丁??
...全文
213 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
summercat 2009-12-29
  • 打赏
  • 举报
回复
语句本身逻辑是没问题的,说了在在10G 10.2.0.4 下查不出数据,但是在10G 10.2.0.1 中可以 。
相同的数据结构 相同的数据。

原因


10.2.0.4 下 无法正确识别 Rownum + 1 Next_Rid 加括号 加as 都不行,解决办法 还是改这个语句 ,当时相对改的教小了。

Select Sys_Connect_By_Path(ceseid, ',') as OutStr
From (Select Rownum Rid, Rownum + 1 Next_Rid, ceseid, enable
From (select * from PS_Corporate_structure where enable = 0))
Where Rid =
(Select Count(*)
From (select * from PS_Corporate_structure where enable = 0))
Start With Rid = 1
Connect By Prior Next_Rid = Rid

=====>

Select Sys_Connect_By_Path(ceseid, ',') as OutStr
From (Select Rownum Rid, Rownum + 1 Next_Rid, ceseid, enable
From (select * from PS_Corporate_structure where enable = 0))
Where Rid =
(Select Count(*)
From (select * from PS_Corporate_structure where enable = 0))
Start With Rid = 1
Connect By Prior Rid +1 = Rid //这里

.........


inthirties 2009-12-28
  • 打赏
  • 举报
回复
是语句本身的逻辑写错了吧
小灰狼W 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 summercat 的回复:]
不是的,数据肯定一样了,
问题解决了。
[/Quote]
是怎么回事来着?
告诉我们分享下``
summercat 2009-12-28
  • 打赏
  • 举报
回复
不是的,数据肯定一样了,
问题解决了。
crazylaa 2009-12-28
  • 打赏
  • 举报
回复
不需要吧?可能是你得测试数据不一样。或者你测试得时候insert了但是没有commit?

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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