员工部门全路径


员工部门全路径
 需要:一张表为员工表,一张表为部门表,然后获取每位员工的部门全路径
create or replace  procedure bumenfullpath
   is 
  v_c_code             tb_v_pekemp.c_code%type;
  v_c_name_emp        tb_v_pekemp.c_name%type;
  v_c_dept_hid           tb_v_pekemp.c_dept_hid%type;
  v_c_name            tb_v_pekunit.c_name%type;
cursor c_emp  is select c_code,c_name,c_dept_hid from tb_v_pekemp order by c_code;
 begin
for i in  c_emp
loop
v_c_code:=i.c_code;
 v_c_dept_hid:=i.c_dept_hid;
 v_c_name_emp :=i.c_name;
--爬树,通过sys_connect_by_path函数来获取每位员工部门全路径;另外,又用了子查询,返回内容最长的哪行记录
select c_name into v_c_name
 from

(select *
from 
(
select c_name_max, c_name  from 
(
select max(length(c_name)) c_name_max, c_name 
from
(select c_oid,sys_connect_by_path(c_name,'/') c_name
from tb_v_pekunit
start with  c_oid=v_c_dept_hid
connect by prior c_supoid=c_oid) group by c_name 
) order by c_name_max desc
 )
where rownum=1);
 dbms_output.put_line(v_c_code||'==>'||v_c_name_emp||':'||v_c_name);
end loop;
  end;
 /


验证过程:
SQL> exec bumenfullpath;
0001==>陈x:/总裁办/职能部室/宏远控股集团有限公司
0002==>齐x:/总经理室/进口事业部/事业部、分子公司/宏远控股集团有限公司
0005==>赵xx:/总经理室/地产事业部/事业部、分子公司/宏远控股集团有限公司

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28916011/viewspace-2120172/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28916011/viewspace-2120172/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值