This shows you the differences between two versions of the page.
— |
kurs:packages [2014/09/10 21:22] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <code> | ||
+ | -- 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 | ||
+ | </code> |