Guest User

Untitled

a guest
Aug 17th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.85 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION
  2.     eMembers(_groupName text) returns TABLE (person INTEGER)
  3. AS $$
  4. DECLARE
  5.     _personNum INTEGER := 0;
  6.     _childNames text;
  7. BEGIN
  8.     FOR _personNum IN SELECT * FROM eMembersGetIds(_groupName)
  9.     LOOP
  10.         RETURN next _personNum;
  11.     END LOOP;
  12.     FOR _childNames IN SELECT e.name
  13.         FROM eGroups parent, eGroups e
  14.         WHERE parent = _groupName AND e.parent = parent.id
  15.     LOOP
  16.             RETURN query SELECT * FROM eMembers(_childNames);
  17.     END LOOP;
  18. END;
  19. $$ language plpgsql stable;
  20.  
  21.  
  22.  
  23.  
  24. CREATE OR REPLACE FUNCTION
  25.     eMembersGetIds(_groupName text) returns TABLE (person INTEGER)
  26. AS $$
  27. DECLARE
  28.     _personNum INTEGER := 0;
  29. BEGIN
  30.     FOR _personNum IN SELECT p.unswid
  31.         FROM People p, eGroupMembers em, eGroups e
  32.         WHERE e.name = _groupname AND em.person = p.id AND em.egroup = e.id
  33.         LOOP
  34.             RETURN next _personNum;        
  35. END;
  36. $$ language plpgsql stable;
Add Comment
Please, Sign In to add comment