我把视图语句从以前的表中导出,
在现在的表中执行时候oracle就陷入无限期的等待.
表结构的初始数据都没有变化.
CREATE OR REPLACE VIEW V_YS_TREE AS
select  SID,PID,SNAME,TABLETYPE FROM
( SELECT 'G1'  AS SID, '0' AS PID,'预算科目' AS SNAME,'G' AS TABLETYPE FROM DUAL)
G
UNION
/*
  预算科目构造树
设置类节点(TABLETYPE='L1,L2,L3,L4,L5') 共5个节点
 1 代表经营预算,2代表财务预算,3代表资本预算,4代表筹资预算,5代表表外预算
*/
SELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT 'L'||1 AS SID,'G1' AS PID,'经营预算' AS SNAME,'L' AS TABLETYPE  FROM DUAL)
L1UNIONSELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT 'L'||2 AS SID,'G1' AS PID,'财务预算' AS SNAME,'L' AS TABLETYPE FROM DUAL)
L2UNION
SELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT 'L'||3 AS SID,'G1' AS PID,'资本预算' AS SNAME,'L' AS TABLETYPE FROM DUAL)
L3UNIONSELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT 'L'||4 AS SID,'G1' AS PID,'筹资预算' AS SNAME,'L' AS TABLETYPE FROM DUAL)
L4UNION
SELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT 'L'||5 AS SID,'G1' AS PID,'表外预算' AS SNAME,'L' AS TABLETYPE FROM DUAL)
L5--预算组节点 TABLEYPE='Z'UNION
SELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT 'Z' || GP.ID AS SID,DECODE((SELECT TMGA.FSYSTEM FROM T_MGACCTGROUP TMGA WHERE TMGA.ID = GP.FPARENTID),1, 'L'||GP.FPARENTID ,'Z'||GP.FPARENTID) AS PID,GP.FNAME AS SNAME,'Z' AS TABLETYPE
 FROM pmis.T_MGACCT  T,pmis.T_MGACCTGROUP GP
 where
         T.FMGACCTGROUPID(+)=GP.ID)Z
--预算科目节点 TABLETYPE='K'
UNION
SELECT SID,PID,SNAME,TABLETYPE FROM
(SELECT
 'K'|| S.ID AS SID, DECODE(S.FPARENTID,0,'Z'||TY.ID,'K'||S.FPARENTID) AS PID,--判断科目上一级是组还是科目  S.FNAME AS SNAME,'K' AS TABLETYPE
 FROM pmis.T_MGACCT S,pmis.T_MGACCTGROUP TY
 WHERE S.FMGACCTGROUPID=TY.ID AND S.FDETAIL=1
)K WITH READ ONLY