Thursday, February 4, 2016

Example of Recursion in PL-SQL

CREATE OR REPLACE PACKAGE my_pkg 
IS 
  FUNCTION get_groups (username VARCHAR2)
    RETURN VARCHAR2; 

END my_pkg;
/
CREATE OR REPLACE PACKAGE BODY my_pkg 
AS
  counter INTEGER; --global counter
  
  
  
  FUNCTION get_ldap_groups(username VARCHAR2)
    RETURN VARCHAR2; --forward declaration
    
  FUNCTION get_groups (username VARCHAR2)
    RETURN VARCHAR2
  IS
  BEGIN
    counter := 0;
    RETURN get_ldap_groups(username);
  END get_groups;
  
  FUNCTION get_ldap_groups(username VARCHAR2)
    RETURN VARCHAR2
  IS
      l_counter INTEGER; 
      l_groups_in VARCHAR2(4000);
      l_groups_out VARCHAR2(4000);
  BEGIN
    counter := counter + 1;
    l_counter := counter;
    if counter < 10 THEN
      l_groups_out := l_counter||username||get_ldap_groups(username);
    END IF;
    RETURN l_groups_out;
  END get_ldap_groups;
  
END my_pkg;
/

No comments:

Post a Comment