-- Start of DDL Script for Package HR.CHG_EMP
-- Generated 6-Nov-2008 9:19:57 from HR@ORCL

CREATE OR REPLACE 
PACKAGE chg_emp
  IS
    p_tax    number;
    dol2eur  number := 1.2822;
    anrede   varchar2(20) := 'Hallo';
    anfang   date   := to_date('20000101', 'yyyymmdd');
    avg_sal  number;
    

   PROCEDURE get_emp
     ( emp_id IN number);

   PROCEDURE get_emp;

/*   procedure add_emp(
     p_employee_id number,
     p_first_name  bonus.first_name%type,
     p_last_name   bonus.last_name%type);*/
    
   procedure add_emp(
     p_first_name  bonus.first_name%type,
     p_last_name   bonus.last_name%type);
   
   function change_tax(new_tax in number)
   return number;

   function get_tax
   return number;
 

END; -- Package spec
/


CREATE OR REPLACE 
PACKAGE BODY chg_emp
IS
   tax      number := 0.2;
   
   function get_p_number(parameter varchar2)
   return number  
   is
    v_number number;
   begin
   select p_number into v_number from parameter
     where p_name = parameter;
   return v_number;
   end;
   
   function change_tax (new_tax number)
   return number
   is 
   begin
     tax := new_tax;
     return new_tax;
   end;
   
   function get_tax
   return number
   is 
   begin
     return tax;
   end;
    
   PROCEDURE get_emp
     ( emp_id IN number)
    IS
   v_first_name bonus.first_name%type;
   v_last_name   bonus.last_name%type;
   begin
     select first_name, last_name into v_first_name, v_last_name 
        from bonus where employee_id = emp_id;
     
     dbms_output.put_line(v_first_name||' '||v_last_name);
   END;

   PROCEDURE get_emp
    IS
   begin
     for r_emp in (select employee_id from bonus) loop
       get_emp(r_emp.employee_id);
     end loop;
   END;
   
   procedure add_emp(
     p_employee_id number,
     p_first_name  bonus.first_name%type,
     p_last_name   bonus.last_name%type)
   is 
   begin
     insert into bonus (
       employee_id,
       first_name,
       last_name
       ) values (
       p_employee_id,
       p_first_name,
       p_last_name);
    end;   
    
   procedure add_emp(
     p_first_name  bonus.first_name%type,
     p_last_name   bonus.last_name%type)
   is 
     v_seq number;
   begin
     select employees_seq.nextval into v_seq from dual;
     add_emp(v_seq, p_first_name, p_last_name);
    end;   

 begin 
     p_tax := get_p_number('tax');
   -- Enter further code below as specified in the Package spec.
END;
/


-- End of DDL Script for Package HR.CHG_EMP