oracle层级关系按列存储_oracle_存储过程_有参数_获取部门装置层级树

create or replace procedure P_UTIL_TREE(P_APPL_NAME in VARCHAR2,

P_HIERARCHY_TYP in VARCHAR2,

TREETYPE in varchar2,

USERCODE in VARCHAR2,

P_CUR OUT SYS_REFCURSOR) is

begin

OPEN P_CUR FOR

with v_util_tree as

(select DISTINCT H.PARENT_EQ_NAME,

H.EQ_NAME,

E.DSCR,

H.SEQ,

W.EDITABLE,

E.TYP

from ip_equip_hierarchy h,

ip_eq E,

(SELECT U.ROLE_ID, T.HIERARCHY_TYP, T.EQ_NAME, T.EDITABLE

FROM A_PT_ROLES_PURVIEW T, A_PT_ROLES_USERS U

WHERE T.HIERARCHY_TYP = P_HIERARCHY_TYP

AND T.ROLE_ID = U.ROLE_ID

AND upper(U.USER_ID) = upper(USERCODE)) w

WHERE H.HIERARCHY_TYP = P_HIERARCHY_TYP

AND H.EQ_NAME = E.EQ_NAME

and e.typ <> 'TANK'

and e.typ <> 'LGTANK'

and e.typ <> 'POST'

AND H.HIERARCHY_TYP = W.HIERARCHY_TYP(+)

AND H.EQ_NAME = W.EQ_NAME(+)

start with H.EQ_NAME in (SELECT T.EQ_NAME

FROM A_PT_ROLES_PURVIEW T, A_PT_ROLES_USERS U

WHERE T.HIERARCHY_TYP = P_HIERARCHY_TYP

AND T.ROLE_ID = U.ROLE_ID

AND upper(U.USER_ID) = upper(USERCODE))

CONNECT BY PRIOR H.PARENT_EQ_NAME = H.EQ_NAME

AND H.HIERARCHY_TYP = P_HIERARCHY_TYP

UNION ALL

SELECT '0',EQ_NAME, DSCR, 0 AS SEQ, '', TYP

FROM V_IP_EQ

WHERE EQ_NAME = '$ASSET'

ORDER BY SEQ )

SELECT DSCR as TEXT, EQ_NAME as ID, PARENT_EQ_NAME, TYP

FROM v_util_tree A;

end P_UTIL_TREE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值