zoukankan      html  css  js  c++  java
  • peoplesoft function PSTREENODE 通过 deptid 获得部门树 全路径 名称

    create or replace function getUnitFullName(deptid in varchar)
    return varchar2 is
    r varchar2(1024);
    c int;
    n varchar2(1024);
    m varchar2(1024);
    r_name varchar2(1024);
    m_deptid varchar2(64);
    begin
    r := '';
    select a.tree_level_num,a.tree_node
    into c,m_deptid
    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);
    
    select l.descr
    into r_name
    from ps_dept_tbl l
    where l.deptid = m_deptid
    and l.EFFDT = (SELECT MAX(D_ED.EFFDT)
    FROM PS_DEPT_TBL D_ED
    WHERE l.SETID = D_ED.SETID
    AND l.DEPTID = D_ED.DEPTID);
    
    r:=r_name;
    if c = 1 then
    return r;
    end if;
    
    
    select a.tree_level_num, a.parent_node_name, a.tree_node
    into c, n, 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);
    while c <> 1 loop
    select l.descr
    into r_name
    from ps_dept_tbl l
    where l.deptid = n
    and l.EFFDT = (SELECT MAX(D_ED.EFFDT)
    FROM PS_DEPT_TBL D_ED
    WHERE l.SETID = D_ED.SETID
    AND l.DEPTID = D_ED.DEPTID);
    r := r_name || '/' || r;
    select a.tree_level_num, a.parent_node_name, a.tree_node
    into c, n, m
    from pstreenode a
    where a.tree_name = 'DEPT_SECURITY'
    and a.tree_node = n
    and A.EFFDT = (SELECT MAX(A_ED.EFFDT)
    FROM pstreenode A_ED
    WHERE A.tree_node = A_ED.tree_node);
    
    end loop;
    return r;
    end getUnitFullName;
  • 相关阅读:
    Mysql自定义函数总结
    MySQL的基本函数
    Mysql存储过程总结
    Mysql触发器总结
    Mysql索引总结(二)
    Mysql索引总结(一)
    Mysql游标使用
    别人的博客,留待后看
    mysql外键约束总结
    mysql视图总结
  • 原文地址:https://www.cnblogs.com/eason-liu/p/3387891.html
Copyright © 2011-2022 走看看