peoplesoft function PSTREENODE 通过 deptid 获得部门树 一级部门 名称

create or replace function ht_gettopdeptNAME(deptid in varchar)
  return varchar2 is
  r   varchar2(1024);
  c   int;
  m   varchar2(20);
  r_f varchar2(1024);

begin
  select  a.tree_level_num, a.parent_node_name,a.tree_node
    into c, r,m
    from pstreenode a
   where a.tree_name = 'DEPT_SECURITY'
     and a.tree_node = deptid and A.EFFDT =(SELECT MAX(A_ED.EFFDT) FROM pstreenode A_ED WHERE A.tree_node = A_ED.tree_node);
     if c<3
       then return null;
       end if;
  if
          c= 3
           then
            select  l.descr into r_f  from ps_dept_tbl L WHERE L.DEPTID=m;
                return r_f;
            return r_f;

       else
         while(c<>3) loop
         select a.tree_level_num, a.parent_node_name
        into c, r
        from pstreenode a
       where a.tree_name = 'DEPT_SECURITY'
         and a.tree_node = m and A.EFFDT =(SELECT MAX(A_ED.EFFDT) FROM pstreenode A_ED WHERE A.tree_node = A_ED.tree_node);
             select a.tree_level_num, a.parent_node_name,a.parent_node_name
        into c, r,m
        from pstreenode a
       where a.tree_name = 'DEPT_SECURITY'
         and a.tree_node = m and A.EFFDT =(SELECT MAX(A_ED.EFFDT) FROM pstreenode A_ED WHERE A.tree_node = A_ED.tree_node);
      if c = 4 then
        select  l.descr into r_f  from ps_dept_tbl L WHERE l.deptid=r;
                return r_f;
      end if;
    end loop;
  end if;

end ht_gettopdeptNAME;

 

转载于:https://www.cnblogs.com/eason-liu/p/3387898.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值