User Tools

Site Tools


kurs:salary

Spec

PACKAGE PCK_SALARY
  IS
--
-- To modify this template, edit file PKGSPEC.TXT in TEMPLATE 
-- directory of SQL Navigator
--
-- Purpose: Briefly explain the functionality of the package
--
-- MODIFICATION HISTORY
-- Person      Date    Comments
-- ---------   ------  ------------------------------------------       
   -- Enter package declarations as shown below

  tax_percent number;
  euro2dollar number;
  
  called_init boolean := false;

  PROCEDURE init;

  PROCEDURE calc_tax;
 
  PROCEDURE calc_tax(v_employee_id IN number);
  
   FUNCTION tax
     ( salary IN number)
     RETURN  number;

END; -- Package spec

Body

CREATE OR REPLACE PACKAGE BODY PCK_SALARY
IS
--
-- To modify this template, edit file PKGBODY.TXT in TEMPLATE 
-- directory of SQL Navigator
--
-- Purpose: Briefly explain the functionality of the package body
--
-- MODIFICATION HISTORY
-- Person      Date    Comments
-- ---------   ------  ------------------------------------------      
   -- Enter procedure, function bodies as shown below

   PROCEDURE init
    IS
   BEGIN
    select isnumeric(par_value) into tax_percent from parameter
      where par_key='tax_percent';
    called_init := true;
   END;

   PROCEDURE calc_tax(v_employee_id IN number)
     is
     BEGIN
     update emp_bonus
       set tax = tax(salary)
       where emp_id = v_employee_id;
   end;


   PROCEDURE calc_tax
    IS
    cursor cur_emp_bonus is
      select * from emp_bonus
      for update of tax;
      
    rec_emp_bonus emp_bonus%rowtype;
   BEGIN
    
    for rec_emp_bonus in cur_emp_bonus loop
      calc_tax(rec_emp_bonus.emp_id);
    end loop;
   -- dbms_output.put_line(isnumeric(tax_percent));
   END;
   
   
  FUNCTION tax
     ( salary IN number)
     RETURN  number
  is
  begin
   if called_init=false then
     init;
   end if;

  return salary*isnumeric(tax_percent);
  end;

   -- Enter further code below as specified in the Package spec.
END;
/
kurs/salary.txt · Last modified: 2014/09/10 21:22 (external edit)