demo codigos

Upload: jhonfve

Post on 20-Feb-2018

260 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/23/2019 DEMO Codigos

    1/146

    DEMO

    1.

    CREATE OR REPLACE PACKAGE state_tax IS

    ma CONSTANT NUMBER := 0.05;

    n CONSTANT NUMBER := 0.0!;

    n" CONSTANT NUMBER := 0.0#;

    $a CONSTANT NUMBER := 0.05;

    %& CONSTANT NUMBER := 0.0';

    EN( state_tax;

    2.

    SET SER)EROUTPUT ON

    BEGIN

    (BMS_OUTPUT.PUT_LINE*+T,e sa-es tax n / 5.'0 1n Massa&,2setts 1s + 335.'0 4 state_tax.ma;

    EN(;

    3.

    SET SER)EROUTPUT ON

    CREATE OR REPLACE PROCE(URE -1st_em$-ees*$_%e$t1% NUMBER IS

    T6PE em$_7e8&s7_t$e IS RE9 CURSOR;

    &27_em$ em$_7e8&s7_t$e;

    7e&_em$ em$-eesROT6PE;

  • 7/23/2019 DEMO Codigos

    2/146

    9ETC> &27_em$ INTO 7e&_em$;

    E?IT >EN &27_em$NOT9OUN(;

    (BMS_OUTPUT.PUT_LINE*7e&_em$.%e$a7tment_1% 33

    + + 33 7e&_em$.-ast_name;

    EN( LOOP;

    CLOSE &27_em$;

    EN(;

    @

    4.

    SET SER)EROUTPUT ON

    CREATE OR REPLACE PROCE(URE $7&ess_%ata IS

    T6PE &27_7e8_t$e IS RE9 CURSOR; ea 7e8 &27s7

    T6PE &27_7e8_em$_t$e IS RE9 CURSOR st7nD 7e8. &27s7

    RETURN em$-eesROT6PE;

  • 7/23/2019 DEMO Codigos

    3/146

    (BMS_OUTPUT.PUT_LINE*7e&_%e$t.%e$a7tment_1% 33+ +337e&_%e$t.%e$a7tment_name;

    EN( LOOP;

    CLOSE O ON

    ens27e t,e %em ta-e 1s %e-ete% $717 t sta7t1nD t,1s %emnst7at1n

    $a2se F$7ess ente7

    (ROP TABLE em$-ees_ta-e;

    $a2se F$7ess ente7

    &7eate t,e ta-e 2se% 87 t,1s %emnst7at1n

    CREATE TABLE em$-ees_ta-e

    AS se-e&t e.EMPLO6EE_I(

    He.9IRST_NAME

    He.LAST_NAME

    He.SALAR6

    HOB_I(

    H".MIN_SALAR6

    H".MA?_SALAR6

    87m em$-ees e OIN "s "USING *"_1%;

    $a2se F$7ess ente7

    a%% a &,e& &nst7a1nt t t,e %emnst7at1n ta-e

    ALTER TABLE em$-ees_ta-e

    A(( CONSTRAINT EMP_C>K_SALAR6

    C>ECK *SALAR6 F= MA?_SALAR6;

  • 7/23/2019 DEMO Codigos

    4/146

    $a2se F$7ess ente7

    &7eate a t71DDe7 t 7est71&t sa-a71es t t,e

    max1m2m 87 t,e17 " t1t-e

    CREATE OR REPLACE TRIGGER 7est71&t_sa-a7

    BE9ORE UP(ATE O9 sa-a7 ON em$-ees_ta-e

    9OR EAC> RO

    >EN *NE.sa-a7 OL(.max_sa-a7

    BEGIN

    :NE.sa-a7 := :OL(.max_sa-a7;

    EN(;

    @

    (ECLARE

    %eJne a 7e&7% &nta1n1nD em$-ee 1n87mat1n

    T6PE EMP_REC IS RECOR(

    *

    EMPLO6EE_I( em$-ees.em$-ee_1%T6PE

    H9IRST_NAME em$-ees.J7st_nameT6PE

    HLAST_NAME em$-ees.-ast_nameT6PE

    HSALAR6 em$-ees.sa-a7T6PE

    HOB_I( em$-ees."_1%T6PE

    HMIN_SALAR6 "s.m1n_sa-a7T6PE

    HMA?_SALAR6 "s.m1n_sa-a7T6PE

    ;

    -_T,1sEm$-ee EMP_REC;

    -_&2nte7 BINAR6_INTEGER := ;

    T6PE -1st_8_em$-ees_t IS TABLE O9 -_T,1sEm$-eeT6PE

    IN(E? B6 PLS_INTEGER;

    -1st_8_em$-ees -1st_8_em$-ees_t;

  • 7/23/2019 DEMO Codigos

    5/146

    BIG_RAISE NUMBER;

    1 NUMBER;

    BEGIN

    1n&7ease sa-a7 000 t,1s 1-- $2t sme 7e&7%s

  • 7/23/2019 DEMO Codigos

    6/146

    33 -1st_8_em$-ees *1.9IRST_NAME 33 + +

    33 -1st_8_em$-ees *1.SALAR6 33 + +

    33 -1st_8_em$-ees *1.MA?_SALAR6 33 + + ;

    EN( I9;

    1 := -1st_8_em$-ees.NE?T *1;

    EN( LOOP;

    G1ERE EMPLO6EE_I( = -1st_8_em$-ees *1.EMPLO6EE_I(;

    1 := -1st_8_em$-ees.NE?T *1;

    EN( LOOP;

    Let+s -1st a-- t,e

  • 7/23/2019 DEMO Codigos

    7/146

    6.

    In 7%e7 t e a-e t 72n t,1s exam$-eH 2 nee% t ens27e t,at 2 ,a

  • 7/23/2019 DEMO Codigos

    8/146

    ORA_(ICT_OB_T6PEHORA_(ICT_OB_NAMEH

    ORA_SER)ER_ERROR*HSTMTHORA_SER)ER_ERROR_MSG*;

    EN(;

    7.ALTER SESSION SET $-s-_&m$1-e7_aDs = +INTERPRETE(+;

    SET SER)EROUTPUT ON

    CREATE OR REPLACE PROCE(URE aste_t1me IS

  • 7/23/2019 DEMO Codigos

    9/146

    SET SER)EROUTPUT ON

    ALTER SESSION SET $-s-_&m$1-e7_aDs = +NATI)E+;

    ALTER PROCE(URE aste_t1me COMPILE;

    E?EC aste_t1me;

    E?EC aste_t1me;

    .

    CREATE OR REPLACE PACKAGE m_$D AS

    SUBT6PE m_7ea- IS

    /I9 (BMS_(B_)ERSION.)ERSION F /T>EN NUMBER; &,e& %ataaseEN

    m_$1 := .0'0!!00!00#'''!'#;

    m_e := .#!!!!5055'0!##5''##5;

    /ELSE

    m_$1 := .0'0!!00!00#'''!'#%;

    m_e := .#!!!!5055'0!##5''##5%;

    /EN(

    EN( m_$D;@

    LABS

    .

    SET EC>O O99

    @4 S&71$t t 21-% t,e )1%e A$$-1&at1n *Pa7t 21-%

  • 7/23/2019 DEMO Codigos

    10/146

    87 t,e O7a&-e Int7%2&t1n t O7a&-e 1t, P7&e%27e B21-%e7 &27se.

    C7eate% : (e K7ame7 C7eat1n %ate: @0@5

    Last 2$ate%: @@'

    M%1Je% NaDa

  • 7/23/2019 DEMO Codigos

    11/146

    H t1t-e )ARC>AR*'0

    CONSTRAINT t1t-e_nn NOT NULL

    H %es&71$t1n )ARC>AR*00

    CONSTRAINT t1t-e_%es&_nn NOT NULL

    H 7at1nD )ARC>AR*

    CONSTRAINT t1t-e_7at1nD_& C>ECK *7at1nD IN *+G+H+PG+H+R+H+NC#+H+NR+

    H &ateD7 )ARC>AR*0 (E9AULT +(RAMA+

    CONSTRAINT t1t-e_&ateD_& C>ECK *&ateD7 IN*+(RAMA+H+COME(6+H+ACTION+H+C>IL(+H+SCI9I+H+(OCUMENTAR6+

    H 7e-ease_%ate (ATE

    @

    CREATE TABLE TITLE_COP6

    *&$_1% NUMBER*0

    H t1t-e_1% NUMBER*0

    CONSTRAINT &$_t1t-e_1%_8

    RE9ERENCES t1t-e*t1t-e_1%

    H stat2s )ARC>AR*5

    CONSTRAINT &$_stat2s_nn NOT NULL

    CONSTRAINT &$_stat2s_& C>ECK *stat2s IN *+A)AILABLE+H+(ESTRO6E(+H

    +RENTE(+H +RESER)E(+

    H CONSTRAINT &$_t1t-e_1%_$ PRIMAR6 KE6*&$_1%H t1t-e_1%

    @

    CREATE TABLE RENTAL

    *_%ate (ATE (E9AULT S6S(ATE

    H &$_1% NUMBER*0

    H meme7_1% NUMBER*0

    CONSTRAINT 7enta-_m7_1%_8 RE9ERENCES meme7*meme7_1%

    H t1t-e_1% NUMBER*0

    H a&t_7et_%ate (ATE

  • 7/23/2019 DEMO Codigos

    12/146

    H ex$_7et_%ate (ATE (E9AULT S6S(ATE

    H CONSTRAINT 7enta-_&$_t1t-e_1%_8 9OREIGN KE6 *&$_1%H t1t-e_1%

    RE9ERENCES t1t-e_&$*&$_1%Ht1t-e_1%

    H CONSTRAINT 7enta-_1%_$ PRIMAR6 KE6*_%ateH &$_1%H t1t-e_1%Hmeme7_1%

    @

    CREATE TABLE RESER)ATION

    *7es_%ate (ATE

    H meme7_1% NUMBER*0

    H t1t-e_1% NUMBER*0

    H CONSTRAINT 7es_1%_$ PRIMAR6 KE6*7es_%ateH meme7_1%H t1t-e_1%

    @

    PROMPT Ta-es &7eate%.

    (ROP SEUENCE t1t-e_1%_se;

    (ROP SEUENCE meme7_1%_se;

    PROMPT C7eat1nD Se2en&es...

    CREATE SEUENCE meme7_1%_se

    START IT> 00

    NOCAC>E

    @

    CREATE SEUENCE t1t-e_1%_se

    START IT>

    NOCAC>E

    @

    PROMPT Se2en&es &7eate%.

  • 7/23/2019 DEMO Codigos

    13/146

    PROMPT R2n 21-%

  • 7/23/2019 DEMO Codigos

    14/146

    EMPLO6EE: M27Ds ea7ns: 5!00

    EMPLO6EE: Ra"s ea7ns: 500

    EMPLO6EE: Pate- ea7ns: 500

    EMPLO6EE: Se ea7ns: #00

    EMPLO6EE: St1-es ea7ns: 00

    EMPLO6EE: La%1D ea7ns: '00

    EMPLO6EE: P,1-tane7 ea7ns: 00

    EMPLO6EE: Gee ea7ns: 00

    EMPLO6EE: RDe7s ea7ns: 00

    EMPLO6EE: Ma--1n ea7ns: 00

    EMPLO6EE: G7ant ea7ns: '00 EMPLO6EE: OCnne-- ea7ns: '00

    EMPLO6EE: 9eene ea7ns: 000

    EMPLO6EE: a-s, ea7ns: 00

    EMPLO6EE: nes ea7ns: !00

    EMPLO6EE: M&Ca1n ea7ns: 00

    EMPLO6EE: E

  • 7/23/2019 DEMO Codigos

    15/146

    EMPLO6EE: (a

  • 7/23/2019 DEMO Codigos

    16/146

    EMPLO6EE: K2ma7 ea7ns: '00

    EMPLO6EE: Bates ea7ns: #00

    EMPLO6EE: Sm1t, ea7ns: #00

    EMPLO6EE: 9x ea7ns: '00

    EMPLO6EE: B-m ea7ns: 0000

    EMPLO6EE: Oe7 ea7ns: 500

    EMPLO6EE: Ban%a ea7ns: '00

    EMPLO6EE: Sm1t, ea7ns: 000

    EMPLO6EE: >a771s ea7ns: 000

    EMPLO6EE: K1nD ea7ns: 0000

    EMPLO6EE: Cam7a2-t ea7ns: #500 EMPLO6EE: >a-- ea7ns: 000

    EMPLO6EE: T2&e7 ea7ns: 0000

    EMPLO6EE: Cam7a2-t ea7ns: 000

    EMPLO6EE: Pa7tne7s ea7ns: 500

    (EPARTMENT: 0

    EMPLO6EE: K1nD ea7ns: 000

    EMPLO6EE: K&,,a7 ea7ns: #000

    EMPLO6EE: (e >aan ea7ns: #000

    (EPARTMENT: 00

    EMPLO6EE: G7eene7D ea7ns: 000

    EMPLO6EE: 9a

  • 7/23/2019 DEMO Codigos

    17/146

    CREATE OR REPLACE PROCE(URE 2n7ea&,a-e_&%e AS

    &_x CONSTANT BOOLEAN := TRUE;

    BEGIN

    I9 &_x T>EN

    (BMS_OUTPUT.PUT_LINE*+TRUE+;

    ELSE

    (BMS_OUTPUT.PUT_LINE*+9ALSE+;

    EN( I9;

    EN( 2n7ea&,a-e_&%e;

    @

    5.SET SER)EROUTPUT ON

    ALTER SESSION SET PLSL_CC9LAGS = +m_%e2D:9ALSEHm_t7a&1nD:9ALSE+;

    CREATE OR REPLACE PACKAGE m_$D AS

    SUBT6PE m_7ea- IS

    /I9 (BMS_(B_)ERSION.)ERSION F 0 /T>EN NUMBER; &,e& %ataaseEN

    m_$1 := .0'0!!00!00#'''!'#;

    m_e := .#!!!!5055'0!##5''##5;

    /ELSE

    m_$1 := .0'0!!00!00#'''!'#%;

    m_e := .#!!!!5055'0!##5''##5%;

    /EN(

    EN( m_$D;

  • 7/23/2019 DEMO Codigos

    18/146

    @

    CREATE OR REPLACE PROCE(URE &17&-e_a7ea*7a%12s m_$D.m_7ea- IS

    m_a7ea m_$D.m_7ea-;

    m_%atat$e )ARC>AR*0;

    BEGIN

    m_a7ea := m_$D.m_$1 4 7a%12s 4 7a%12s;

    (BMS_OUTPUT.PUT_LINE*+Ra%12s: + 33 TO_C>AR*7a%12s

    33 + A7ea: + 33 TO_C>AR*m_a7ea ;

    /I9 //m_%e2D /T>EN 18 m_%e2D 1s TRUEH 72n sme %e2DD1nD &%e SELECT (ATA_T6PE INTO m_%atat$e 9ROM USER_ARGUMENTS

    >ERE OBECT_NAME = +CIRCLE_AREA+ AN( ARGUMENT_NAME =+RA(IUS+;

    (BMS_OUTPUT.PUT_LINE*+(atat$e 8 t,e RA(IUS a7D2ment 1s: + 33m_%atat$e;

    /EN(

    EN(;

    @

    '.

    (ECLARE

    t,e $a&aDe_text AR*#'#;

    9UNCTION Dene7ate_s$e& *$Dname )ARC>AR RETURN )ARC>AR AS

    BEGIN

    RETURN +CREATE PACKAGE + 33 $Dname 33 + AS

    PROCE(URE 7a1se_sa-a7 *em$_1% NUMBERH am2nt NUMBER;

    PROCE(URE J7e_em$-ee *em$_1% NUMBER;

    EN( + 33 $Dname 33 +;+;

    EN( Dene7ate_s$e&;

    9UNCTION Dene7ate_% *$Dname )ARC>AR RETURN )ARC>AR AS

  • 7/23/2019 DEMO Codigos

    19/146

    BEGIN

    RETURN +CREATE PACKAGE BO(6 + 33 $Dname 33 + AS

    PROCE(URE 7a1se_sa-a7 *em$_1% NUMBERH am2nt NUMBER IS

    BEGIN

    UP(ATE em$-ees SET sa-a7 = sa-a7 am2nt >ERE em$-ee_1%= em$_1%;

    EN( 7a1se_sa-a7;

    PROCE(URE J7e_em$-ee *em$_1% NUMBER IS

    BEGIN

    (ELETE 9ROM em$-ees >ERE em$-ee_1% = em$_1%;

    EN( J7e_em$-ee;

    EN( + 33 $Dname 33 +;+;

    EN( Dene7ate_%;

    #.

    Rem

    Rem />ea%e7: 2t-%t7ee.s-H< . @0@' ':: RKOOI Sta /

    Rem

    Rem C$71D,t *& O7a&-e C7$7at1n

    Rem NAME

    Rem %e$t7ee.s- S, "e&ts 7e&27s1

  • 7/23/2019 DEMO Codigos

    20/146

    Rem se-e&t 4 87m %e$t7ee 7%e7 seW;

    Rem

    Rem A $7ett1e7 a t %1s$-a t,1s 1n87mat1n t,an

    Rem se-e&t 4 87m %e$t7ee 7%e7 seW;

    Rem 1s

    Rem se-e&t 4 87m 1%e$t7ee;

    Rem T,1s s,s t,e %e$en%en& 7e-at1ns,1$

  • 7/23/2019 DEMO Codigos

    21/146

    "e&t_1% n2me7H

    7e8e7en&e%_"e&t_1% n2me7H

    nest_-e

  • 7/23/2019 DEMO Codigos

    22/146

    set e&, n

    REM T,1s

  • 7/23/2019 DEMO Codigos

    23/146

    REM T,1s

  • 7/23/2019 DEMO Codigos

    24/146

    (EPARTMENT: 0

    EMPLO6EE: ,a-en ea7ns: 00

    (EPARTMENT: 0

    EMPLO6EE: >a7tste1n ea7ns: 000

    EMPLO6EE: 9a ea7ns: '000

    (EPARTMENT: 0

    EMPLO6EE: Ra$,ae- ea7ns: 000

    EMPLO6EE: K, ea7ns: 00

    EMPLO6EE: Ba1%a ea7ns: 00

    EMPLO6EE: C-mena7es ea7ns: 500

    EMPLO6EE: >1m27 ea7ns: '00 EMPLO6EE: T1as ea7ns: !00

    (EPARTMENT: 0

    EMPLO6EE: Ma

  • 7/23/2019 DEMO Codigos

    25/146

    EMPLO6EE: P,1-tane7 ea7ns: 00

    EMPLO6EE: Gee ea7ns: 00

    EMPLO6EE: RDe7s ea7ns: 00

    EMPLO6EE: Ma--1n ea7ns: 00

    EMPLO6EE: G7ant ea7ns: '00

    EMPLO6EE: OCnne-- ea7ns: '00

    EMPLO6EE: 9eene ea7ns: 000

    EMPLO6EE: a-s, ea7ns: 00

    EMPLO6EE: nes ea7ns: !00

    EMPLO6EE: M&Ca1n ea7ns: 00

    EMPLO6EE: E

  • 7/23/2019 DEMO Codigos

    26/146

    EMPLO6EE: A2st1n ea7ns: !00

    EMPLO6EE: L7ent ea7ns: 00

    (EPARTMENT: #0

    EMPLO6EE: Bae7 ea7ns: 0000

    (EPARTMENT: !0

    EMPLO6EE: R2sse-- ea7ns: 000

    EMPLO6EE: E77a271 ea7ns: 000

    EMPLO6EE: V-te ea7ns: 0500

    EMPLO6EE: Be7nste1n ea7ns: 500

    EMPLO6EE: O-sen ea7ns: !000

    EMPLO6EE: T2

  • 7/23/2019 DEMO Codigos

    27/146

    EMPLO6EE: Ban%a ea7ns: '00

    EMPLO6EE: Sm1t, ea7ns: 000

    EMPLO6EE: >a771s ea7ns: 000

    EMPLO6EE: K1nD ea7ns: 0000

    EMPLO6EE: Cam7a2-t ea7ns: #500

    EMPLO6EE: >a-- ea7ns: 000

    EMPLO6EE: T2&e7 ea7ns: 0000

    EMPLO6EE: Cam7a2-t ea7ns: 000

    EMPLO6EE: Pa7tne7s ea7ns: 500

    (EPARTMENT: 0

    EMPLO6EE: K1nD ea7ns: 000 EMPLO6EE: K&,,a7 ea7ns: #000

    EMPLO6EE: (e >aan ea7ns: #000

    (EPARTMENT: 00

    EMPLO6EE: G7eene7D ea7ns: 000

    EMPLO6EE: 9a

  • 7/23/2019 DEMO Codigos

    28/146

    INSERT INTO "s *"_1%H "_t1t-e

    )ALUES *$_"1%H $_"t1t-e;

    COMMIT;

    EN( a%%_";

    @

    .

    E?ECUTE a%%_" *+IT_(BA+H +(ataase A%m1n1st7at7+

    SELECT 4 9ROM "s >ERE "_1% = +IT_(BA+;

    .

    E?ECUTE a%%_" *+ST_MAN+H +St& ManaDe7+

    .CREATE OR REPLACE PROCE(URE 2$%_"*

    $_"1% IN "s."_1%T6PEH

    $_"t1t-e IN "s."_t1t-eT6PE IS

    BEGIN

    UP(ATE "s

    SET "_t1t-e = $_"t1t-e

    >ERE "_1% = $_"1%;

    I9 SLNOT9OUN( T>EN

    RAISE_APPLICATION_ERROR*00H +N " 2$%ate%.+;

    EN( I9;

    EN( 2$%_";

    @

    5.

    E?ECUTE 2$%_" *+IT_(BA+H +(ata A%m1n1st7at7+

    SELECT 4 9ROM "s >ERE "_1% = +IT_(BA+;

    '.

    E?ECUTE 2$%_" *+IT_EB+H +e Maste7+

    SELECT 4 9ROM "s >ERE "_1% = +IT_EB+;

    #.

    CREATE OR REPLACE PROCE(URE %e-_" *$_"1% "s."_1%T6PE IS

    BEGIN

  • 7/23/2019 DEMO Codigos

    29/146

    (ELETE 9ROM "s

    >ERE "_1% = $_"1%;

    I9 SLNOT9OUN( T>EN

    RAISE_APPLICATION_ERROR*00H +N "s %e-ete%.+;

    EN( I9;

    EN( (EL_OB;

    @

    !.

    E?ECUTE %e-_" *+IT_(BA+

    SELECT 4 9ROM "s >ERE "_1% = +IT_(BA+;

    .E?ECUTE %e-_" *+IT_EB+

    0.

    CREATE OR REPLACE PROCE(URE Det_em$-ee

    *$_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE IS

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    @

    .

    )ARIABLE AR*5

  • 7/23/2019 DEMO Codigos

    30/146

    E?ECUTE Det_em$-ee*00H :AR*5

    E?ECUTE :_t1t-e := Det_" *+SA_REP+;

    PRINT _t1t-e

    5.

    CREATE OR REPLACE 9UNCTION Det_ann2a-_&m$*

    $_sa- IN em$-ees.sa-a7T6PEH

    $_&mm IN em$-ees.&mm1ss1n_$&tT6PE

    RETURN NUMBER IS

    BEGIN

    RETURN *N)L*$_sa-H0 4 *N)L*$_&mmH0 4 n

  • 7/23/2019 DEMO Codigos

    31/146

    CREATE OR REPLACE 9UNCTION EN

    RETURN 9ALSE;

    EN(

  • 7/23/2019 DEMO Codigos

    32/146

    RAISE_APPLICATION_ERROR *00H +Ina771s+H +A>ARRIS+H $_%e$t1%= 5

    0.

    E?ECUTE a%%_em$-ee*+e+H +>a771s+H +A>ARRIS+H $_%e$t1%= !0

    .

    CREATE OR REPLACE PROCE(URE em$_-1st

    *$_max7s IN NUMBERIS

    CURSOR &27_em$ IS

    SELECT %.%e$a7tment_nameH e.em$-ee_1%H e.-ast_nameH

    e.sa-a7H e.&mm1ss1n_$&t

    9ROM %e$a7tments %H em$-ees e

    >ERE %.%e$a7tment_1% = e.%e$a7tment_1%;

    7e&_em$ &27_em$ROT6PE;

    T6PE em$_ta_t$e IS TABLE O9 &27_em$ROT6PE IN(E? B6BINAR6_INTEGER;

    em$_ta em$_ta_t$e;

    1 NUMBER := ;

    AR*0;

    BEGIN

    OPEN &27_em$; 9ETC> &27_em$ INTO 7e&_em$;

    em$_ta*1 := 7e&_em$;

    >ILE *&27_em$9OUN( AN( *1 F= $_max7s LOOP

    1 := 1 ;

    9ETC> &27_em$ INTO 7e&_em$;

    em$_ta*1 := 7e&_em$;

  • 7/23/2019 DEMO Codigos

    33/146

    + 7s 1n + 33 AR RETURN )ARC>ARAS

  • 7/23/2019 DEMO Codigos

    34/146

    S>O ERRORS

    .

    CREATE OR REPLACE PACKAGE BO(6 "_$D IS

    PROCE(URE a%%_" *

    $_"1% "s."_1%T6PEH

    $_"t1t-e "s."_t1t-eT6PE IS

    BEGIN

    INSERT INTO "s *"_1%H "_t1t-e

    )ALUES *$_"1%H $_"t1t-e;

    COMMIT;

    EN( a%%_";

    PROCE(URE %e-_" *$_"1% "s."_1%T6PE IS

    BEGIN

    (ELETE 9ROM "s

    >ERE "_1% = $_"1%;

    I9 SLNOT9OUN( T>EN

    RAISE_APPLICATION_ERROR*00H +N "s %e-ete%.+;

    EN( I9;

    EN( (EL_OB;

    9UNCTION Det_" *$_"1% IN "s."_1%t$e

    RETURN "s."_t1t-et$e IS

    ERE "_1% = $_"1%;

    RETURN

  • 7/23/2019 DEMO Codigos

    35/146

    PROCE(URE 2$%_"*

    $_"1% IN "s."_1%T6PEH

    $_"t1t-e IN "s."_t1t-eT6PE IS

    BEGIN

    UP(ATE "s

    SET "_t1t-e = $_"t1t-e

    >ERE "_1% = $_"1%;

    I9 SLNOT9OUN( T>EN

    RAISE_APPLICATION_ERROR*00H +N " 2$%ate%.+;

    EN( I9;

    EN( 2$%_";

    EN( "_$D;

    @

    S>O ERRORS

    5.

    E?ECUTE "_$D.a%%_"*+IT_S6SAN+H +Sstems Ana-st+

    '.

    SELECT 4

    9ROM "s

    >ERE "_1% = +IT_S6SAN+;

    #.

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

  • 7/23/2019 DEMO Codigos

    36/146

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    EN( em$_$D;

    @

    S>O ERRORS

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    9UNCTION EN

    RETURN 9ALSE;

    EN(

  • 7/23/2019 DEMO Codigos

    37/146

    I9 EN

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +InERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    EN( em$_$D;

    @

    S>O ERRORS

    !.

    E?ECUTE em$_$D.a%%_em$-ee*+ane+H +>a771s+H+A>ARRIS+H $_%e$t1% =5

    .

    E?ECUTE em$_$D.a%%_em$-ee*+(a+H $_%e$t1% =!0

    0.

    SELECT 4

    9ROM em$-ees

    >ERE -ast_name = +Sm1t,+;

  • 7/23/2019 DEMO Codigos

    38/146

    .

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    @4 Ne O ERRORS

    .

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

  • 7/23/2019 DEMO Codigos

    39/146

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    @4 Ne

  • 7/23/2019 DEMO Codigos

    40/146

    E?CEPTION

    >EN NO_(ATA_9OUN( T>EN

    RETURN 9ALSE;

    EN(

  • 7/23/2019 DEMO Codigos

    41/146

    $_ema1- em$-ees.ema1-t$e;

    BEGIN

    $_ema1- := UPPER*SUBSTR*$_J7st_nameH H 33SUBSTR*$_-ast_nameH H#;

    a%%_em$-ee*$_J7st_nameH $_-ast_nameH $_ema1-H $_%e$t1% =$_%e$t1%;

    EN(;

    @4 En% %e&-a7at1n 8 t,e ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    EN( em$_$D;

    @

    S>O ERRORS

    .

    E?ECUTE em$_$D.a%%_em$-ee*+Sam2e-+H +$-1n+H 0

    .

    SELECT 4

    9ROM em$-ees

    >ERE -ast_name = +$-1n+;

    5.

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

  • 7/23/2019 DEMO Codigos

    42/146

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH$_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    @4 Ne

  • 7/23/2019 DEMO Codigos

    43/146

    '.

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    @4 Ne

  • 7/23/2019 DEMO Codigos

    44/146

    EN( em$_$D;

    @

    S>O ERRORS

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    9UNCTION EN

    RETURN 9ALSE;

    EN(

  • 7/23/2019 DEMO Codigos

    45/146

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +InERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    @4 Ne Det_em$-ee 82n&t1n %e&-a7at1n sta7ts ,e7e 4@

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

  • 7/23/2019 DEMO Codigos

    46/146

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e; BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne O ERRORS

    #.

    Pa&aDe SPECI9ICATION

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

  • 7/23/2019 DEMO Codigos

    47/146

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee* $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    @4 Ne $71nt_em$-ee $71nt_em$-ee $7&e%27e s$e& 4@

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    EN( em$_$D;

    @

    S>O ERRORS

    !.

    SET SER)EROUTPUT ON

    BEGIN

    em$_$D.$71nt_em$-ee*em$_$D.Det_em$-ee*00;

  • 7/23/2019 DEMO Codigos

    48/146

    em$_$D.$71nt_em$-ee*em$_$D.Det_em$-ee*+$-1n+;

    EN(;

    @

    .

    Pa&aDe SPECI9ICATION

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH$_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

  • 7/23/2019 DEMO Codigos

    49/146

    @4 Ne $7&e%27e 1n1t_%e$a7tments s$e& 4@

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    EN( em$_$D;

    @

    S>O ERRORS

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    @4 Ne t$e 4@

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    50/146

    >EN NO_(ATA_9OUN( T>EN

    RETURN 9ALSE;

    EN(

  • 7/23/2019 DEMO Codigos

    51/146

    a%%_em$-ee*$_J7st_nameH $_-ast_nameH $_ema1-H $_%e$t1% =$_%e$t1%;

    EN(;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE IS

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name; RETURN 7e&_em$;

  • 7/23/2019 DEMO Codigos

    52/146

    EN(;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e IS

    BEGIN

    (BMS_OUTPUT.PUT_LINE*$_7e&_em$.%e$a7tment_1% 33+ +33

    $_7e&_em$.em$-ee_1%33+ +33

    $_7e&_em$.J7st_name33+ +33

    $_7e&_em$.-ast_name33+ +33

    $_7e&_em$."_1%33+ +33

    $_7e&_em$.sa-a7;

    EN(;

    @4 Ne 1n1t_%e$a7tments $7&e%27e %e&-a7at1n. 4@

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

    O ERRORS

    0.

    Pa&aDe SPECI9ICATION

  • 7/23/2019 DEMO Codigos

    53/146

    CREATE OR REPLACE PACKAGE em$_$D IS

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    @4 Ne $7&e%27e 1n1t_%e$a7tments s$e& 4@

    PROCE(URE 1n1t_%e$a7tments;

  • 7/23/2019 DEMO Codigos

    54/146

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    EN( em$_$D;

    @

    S>O ERRORS

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    55/146

    BEGIN

    I9 EN

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +InERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

  • 7/23/2019 DEMO Codigos

    56/146

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e IS

    BEGIN

    (BMS_OUTPUT.PUT_LINE*$_7e&_em$.%e$a7tment_1% 33+ +33

    $_7e&_em$.em$-ee_1%33+ +33

    $_7e&_em$.J7st_name33+ +33

    $_7e&_em$.-ast_name33+ +33

    $_7e&_em$."_1%33+ +33

    $_7e&_em$.sa-a7;

    EN(;

    @4 Ne 1n1t_%e$a7tments $7&e%27e %e&-a7at1n. 4@

  • 7/23/2019 DEMO Codigos

    57/146

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

    O ERRORS

    .

    E?ECUTE em$_$D.a%%_em$-ee*+ames+H +Bn%+H 5

    .

    INSERT INTO %e$a7tments *%e$a7tment_1%H %e$a7tment_name

    )ALUES *5H +Se&271t+;

    COMMIT;

    .

    E?ECUTE em$_$D.a%%_em$-ee*+ames+H +Bn%+H 5

    .

    E?ECUTE EMP_PKG.INIT_(EPARTMENTS

    5.

    E?ECUTE em$_$D.a%%_em$-ee*+ames+H +Bn%+H 5

    '.

    (ELETE 9ROM em$-ees

    >ERE J7st_name = +ames+ AN( -ast_name = +Bn%+;

  • 7/23/2019 DEMO Codigos

    58/146

    (ELETE 9ROM %e$a7tments >ERE %e$a7tment_1% = 5;

    COMMIT;

    E?ECUTE EMP_PKG.INIT_(EPARTMENTS

    #.

    CREATE OR REPLACE PACKAGE em$_$D IS

    @4 t,e $a&aDe s$e& 1s a-7ea% 1n an a-$,aet1&a- 7%e7. 4@

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH$_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

  • 7/23/2019 DEMO Codigos

    59/146

    7et27n em$-ees7t$e;

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    EN( em$_$D;

    @

    S>O ERRORS

    !.

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    60/146

    ELSE

    RAISE_APPLICATION_ERROR *00H +InERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

  • 7/23/2019 DEMO Codigos

    61/146

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    62/146

    9UNCTION

  • 7/23/2019 DEMO Codigos

    63/146

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0 IS

    BEGIN

    I9 EN @4

  • 7/23/2019 DEMO Codigos

    64/146

    $_" OUT em$-ees."_1%T6PE IS

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e; BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne a-$,aet1&a- -&at1n 8 82n&t1n 1n1t_%e$a7tments. 4@

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

  • 7/23/2019 DEMO Codigos

    65/146

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    66/146

    @

    S>O ERRORS

    50.

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    9UNCTION EN

    RETURN 9ALSE;

    EN(

  • 7/23/2019 DEMO Codigos

    67/146

    I9 EN

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +InERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

  • 7/23/2019 DEMO Codigos

    68/146

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e 7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne $71nt_em$-ees $7&e%27e %e&-a7at1n. 4@

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e IS

    BEGIN

    (BMS_OUTPUT.PUT_LINE*$_7e&_em$.%e$a7tment_1% 33+ +33

    $_7e&_em$.em$-ee_1%33+ +33

    $_7e&_em$.J7st_name33+ +33

    $_7e&_em$.-ast_name33+ +33

    $_7e&_em$."_1%33+ +33

    $_7e&_em$.sa-a7;

    EN(;

  • 7/23/2019 DEMO Codigos

    69/146

    EN( em$_$D;

    @

    S>O ERRORS

    5.

    T,e &27se ,as a %17e&t7 a-1as $7ARH $_J-ename IN )ARC>AR IS

    8 UTL_9ILE.9ILE_T6PE;

    CURSOR &27_aERE sa-a7 *SELECT A)G*sa-a7

    9ROM em$-ees 1nne7

    GROUP B6 2te7.%e$a7tment_1%

    OR(ER B6 %e$a7tment_1%;

    BEGIN

    8 := UTL_9ILE.9OPEN*$_%17H $_J-enameH++;

    UTL_9ILE.PUT_LINE*8H +Em$-ees , ea7n m7e t,an aAR*em$.sa-a7H +/H.00+H ;

    EN( LOOP; UTL_9ILE.NE_LINE*8;

  • 7/23/2019 DEMO Codigos

    70/146

    UTL_9ILE.PUT_LINE*8H +444 EN( O9 REPORT 444+;

    UTL_9ILE.9CLOSE*8;

    EN( em$-ee_7e$7t;

    @

    5.

    87 st2%ent 7a'H as an exam$-e.

    E?ECUTE em$-ee_7e$7t*+REPORTS_(IR+H+sa-_7$t'.txt+

    5.

    CREATE OR REPLACE PACKAGE ta-e_$D IS

    PROCE(URE mae*$_ta-e_name )ARC>ARH $_&-_s$e&s )ARC>AR; PROCE(URE a%%_7*$_ta-e_name )ARC>ARH $_&-_ARH

    $_&-s )ARC>AR := NULL;

    PROCE(URE 2$%_7*$_ta-e_name )ARC>ARH $_set_ARH

    $_&n%1t1ns )ARC>AR := NULL;

    PROCE(URE %e-_7*$_ta-e_name )ARC>ARH $_&n%1t1ns )ARC>AR :=NULL;

    PROCE(URE 7emAR;

    EN( ta-e_$D;

    @

    S>O ERRORS

    5.

    CREATE OR REPLACE PACKAGE BO(6 ta-e_$D IS

    PROCE(URE exe&2te*$_stmt )ARC>AR IS

    BEGIN (BMS_OUTPUT.PUT_LINE*$_stmt;

    E?ECUTE IMME(IATE $_stmt;

    EN(;

    PROCE(URE mae*$_ta-e_name )ARC>ARH $_&-_s$e&s )ARC>AR IS

    AR*00 := +CREATE TABLE +33 $_ta-e_name 33

    + *+ 33 $_&-_s$e&s 33 ++; BEGIN

  • 7/23/2019 DEMO Codigos

    71/146

    exe&2te*ARH $_&-_ARH

    $_&-s )ARC>AR := NULL IS

    AR*00 := +INSERT INTO +33 $_ta-e_name;

    BEGIN

    I9 $_&-s IS NOT NULL T>EN

  • 7/23/2019 DEMO Codigos

    72/146

    EN(;

    PROCE(URE 7emAR IS

    &27_1% INTEGER;

    AR*00 := +(ROP TABLE +33$_ta-e_name;

    BEGIN

    &27_1% := (BMS_SL.OPEN_CURSOR;

    (BMS_OUTPUT.PUT_LINE*

  • 7/23/2019 DEMO Codigos

    73/146

    9ROM m_&nta&ts;

    5.

    SET SER)EROUTPUT ON

    E?ECUTE ta-e_$D.%e-_7*+m_&nta&ts+H +1%=+

    '0.

    SET SER)EROUTPUT ON

    E?EC ta-e_$D.2$%_7*+m_&nta&ts+H+name=++Nan& G7eene7D+++H+1%=+

    '.

    SELECT 4

    9ROM m_&nta&ts;

    '.E?ECUTE ta-e_$D.7emAR IS

    BEGIN

    (BMS_OUTPUT.PUT_LINE*$_stmt;

    E?ECUTE IMME(IATE $_stmt;

    EN(;

    9UNCTION Det_t$e*$_name )ARC>AR RETURN )ARC>AR IS

    AR*0 := NULL;

    BEGIN

    @4

  • 7/23/2019 DEMO Codigos

    74/146

    4 T,e RONUM = 1s a%%e% t t,e &n%1t1n

    4 t ens27e n- ne 7 1s 7et27ne% 18 t,e

    4 name 7e$7esents a PACKAGEH ,1&, ma a-s

    4 ,aERE "e&t_name = UPPER*$_name AN( RONUM = ;

    RETURN EN NO_(ATA_9OUN( T>EN

    RETURN NULL;

    EN(;

    PROCE(URE mae*$_name )ARC>AR IS

    AR*00;

    AR*0 := Det_t$e*$_name;

    BEGIN

    I9 EN

  • 7/23/2019 DEMO Codigos

    75/146

    S>O ERRORS

    '5.

    SET SER)EROUTPUT ON

    E?ECUTE &m$1-e_$D.mae*+em$-ee_7e$7t+

    E?ECUTE &m$1-e_$D.mae*+em$_$D+

    E?ECUTE &m$1-e_$D.mae*+em$_%ata+

    ''.

    CREATE OR REPLACE PACKAGE em$_$D IS

    T6PE em$_ta_t$e IS TABLE O9 em$-eesROT6PE;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

  • 7/23/2019 DEMO Codigos

    76/146

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e;

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    EN( em$_$D;

    @

    S>O ERRORS

    '#.

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    77/146

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0 IS

    BEGIN

    I9 EN

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +In

  • 7/23/2019 DEMO Codigos

    78/146

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$; EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne Det_em$-ees $7&e%27e. 4@

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e IS

    BEGIN

    SELECT 4 BULK COLLECT INTO em$_ta-e

    9ROM EMPLO6EES

    >ERE %e$a7tment_1% = $_%e$t_1%;

    EN(;

  • 7/23/2019 DEMO Codigos

    79/146

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    80/146

    @

    S>O ERRORS

    '!.

    Pa&aDe SPECI9ICATION

    CREATE OR REPLACE PACKAGE em$_$D IS

    T6PE em$_ta_t$e IS TABLE O9 em$-eesROT6PE;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

  • 7/23/2019 DEMO Codigos

    81/146

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e;

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    PROCE(URE s,_em$-ees;

    EN( em$_$D;

    @

    S>O ERRORS

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    82/146

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0 IS

    BEGIN

    I9 EN

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H$_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +In

  • 7/23/2019 DEMO Codigos

    83/146

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne Det_em$-ees $7&e%27e. 4@

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e IS

    BEGIN

    SELECT 4 BULK COLLECT INTO em$_ta-e

  • 7/23/2019 DEMO Codigos

    84/146

    9ROM EMPLO6EES

    >ERE %e$a7tment_1% = $_%e$t_1%;

    EN(;

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    85/146

    9UNCTION

  • 7/23/2019 DEMO Codigos

    86/146

    ;

    CREATE SEUENCE -D_neem$_se;

    #.

    Pa&aDe SPECI9ICATION

    CREATE OR REPLACE PACKAGE em$_$D IS

    T6PE em$_ta_t$e IS TABLE O9 em$-eesROT6PE;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

  • 7/23/2019 DEMO Codigos

    87/146

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e;

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    PROCE(URE s,_em$-ees;

    EN( em$_$D;

    @

    S>O ERRORS

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    88/146

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0 IS

    Ne -&a- $7&e%27e

    PROCE(URE a2%1t_neem$ IS

    PRAGMA AUTONOMOUS_TRANSACTION; 2se7_1% )ARC>AR*0 := USER;

    BEGIN

    INSERT INTO -D_neem$ *ent7_1%H 2se7_1%H -D_t1meH name

    )ALUES *-D_neem$_se.NE?T)ALH 2se7_1%H ss%ateH$_J7st_name33+ +33$_-ast_name;

    COMMIT;

    EN( a2%1t_neem$;

    BEGIN a%%_em$-ee

    I9 EN

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;ELSE

    RAISE_APPLICATION_ERROR *00H +In

  • 7/23/2019 DEMO Codigos

    89/146

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE IS

    $_ema1- em$-ees.ema1-t$e;

    BEGIN

    $_ema1- := UPPER*SUBSTR*$_J7st_nameH H 33SUBSTR*$_-ast_nameH H#;

    a%%_em$-ee*$_J7st_nameH $_-ast_nameH $_ema1-H $_%e$t1% =$_%e$t1%;

    EN(;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE IS

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

  • 7/23/2019 DEMO Codigos

    90/146

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne Det_em$-ees $7&e%27e. 4@

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e IS

    BEGIN SELECT 4 BULK COLLECT INTO em$_ta-e

    9ROM EMPLO6EES

    >ERE %e$a7tment_1% = $_%e$t_1%;

    EN(;

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    91/146

    EN(;

    PROCE(URE s,_em$-ees IS

    BEGIN

    I9 em$_ta-e IS NOT NULL T>EN

    (BMS_OUTPUT.PUT_LINE*+Em$-ees 1n Pa&aDe ta-e+;

    9OR 1 IN .. em$_ta-e.COUNT

    LOOP

    $71nt_em$-ee*em$_ta-e*1;

    EN( LOOP;

    EN( I9; EN( s,_em$-ees;

    9UNCTION

  • 7/23/2019 DEMO Codigos

    92/146

    CREATE OR REPLACE PACKAGE em$_$D IS

    T6PE em$_ta_t$e IS TABLE O9 em$-eesROT6PE;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H$_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e;

  • 7/23/2019 DEMO Codigos

    93/146

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    PROCE(URE s,_em$-ees;

    EN( em$_$D;

    @

    S>O ERRORS

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    94/146

    Ne -&a- $7&e%27e

    PROCE(URE a2%1t_neem$ IS

    PRAGMA AUTONOMOUS_TRANSACTION;

    2se7_1% )ARC>AR*0 := USER;

    BEGIN

    INSERT INTO -D_neem$ *ent7_1%H 2se7_1%H -D_t1meH name

    )ALUES *-D_neem$_se.NE?T)ALH 2se7_1%H ss%ateH$_J7st_name33+ +33$_-ast_name;

    COMMIT;

    EN( a2%1t_neem$;

    BEGIN a%%_em$-ee

    I9 EN

    a2%1t_neem$;

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSE

    RAISE_APPLICATION_ERROR *00H +In

  • 7/23/2019 DEMO Codigos

    95/146

    a%%_em$-ee*$_J7st_nameH $_-ast_nameH $_ema1-H $_%e$t1% =$_%e$t1%;

    EN(;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE IS

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name; RETURN 7e&_em$;

  • 7/23/2019 DEMO Codigos

    96/146

    EN(;

    @4 Ne Det_em$-ees $7&e%27e. 4@

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e IS

    BEGIN

    SELECT 4 BULK COLLECT INTO em$_ta-e

    9ROM EMPLO6EES

    >ERE %e$a7tment_1% = $_%e$t_1%;

    EN(;

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    97/146

    (BMS_OUTPUT.PUT_LINE*+Em$-ees 1n Pa&aDe ta-e+;

    9OR 1 IN .. em$_ta-e.COUNT

    LOOP

    $71nt_em$-ee*em$_ta-e*1;

    EN( LOOP;

    EN( I9;

    EN( s,_em$-ees;

    9UNCTION

  • 7/23/2019 DEMO Codigos

    98/146

    se-e&t 4 87m -D_neem$;

    #5.

    ATE OR REPLACE PROCE(URE &,e&_sa-a7 *$_t,e_" )ARC>ARH$_t,e_sa-a7 NUMBER IS

    RO

    BEGIN &,e&_sa-a7*:ne."_1%H :ne.sa-a7;

    EN(;

    @

    S>O ERRORS

    ##.

    E?ECUTE em$_$D.a%%_em$-ee*+E-ean7+H +Be,+H 0

    #!.UP(ATE em$-ees

  • 7/23/2019 DEMO Codigos

    99/146

    SET sa-a7 = 000

    >ERE em$-ee_1% = 5;

    UP(ATE em$-ees

    SET "_1% = +>R_REP+

    >ERE em$-ee_1% = 5;

    #.

    UP(ATE em$-ees

    SET sa-a7 = !00

    >ERE em$-ee_1% = 5;

    !0CREATE OR REPLACE TRIGGER &,e&_sa-a7_t7D

    BE9ORE INSERT OR UP(ATE O9 "_1%H sa-a7

    ON em$-ees 9OR EAC> RO

    >EN *ne."_1% F N)L*-%."_1%H+Y+ OR

    ne.sa-a7 F N)L*-%.sa-a7H0

    BEGIN

    &,e&_sa-a7*:ne."_1%H :ne.sa-a7;

    EN(;

    @

    S>O ERRORS

    !

    BEGIN

    em$_$D.a%%_em$-ee*+E-ean7+H +Be,+H +EBE>+H

    $_" = +IT_PROG+H $_sa- = 5000;

    EN(;

    @

    !

    UP(ATE em$-ees

    SET sa-a7 = sa-a7 000

    >ERE "_1% = +IT_PROG+;

    !

  • 7/23/2019 DEMO Codigos

    100/146

    UP(ATE em$-ees

    SET sa-a7 = 000

    >ERE em$-ee_1% = *SELECT em$-ee_1%

    9ROM em$-ees

    >ERE -ast_name = +Be,+;

    !

    UP(ATE em$-ees

    set "_1% = +ST_MAN+

    >ERE em$-ee_1% = *SELECT em$-ee_1%

    9ROM em$-ees

    >ERE -ast_name = +Be,+;!5

    CREATE OR REPLACE TRIGGER %e-ete_em$_t7D

    BE9ORE (ELETE ON em$-ees

    (ECLARE

    t,e_%a )ARC>AR* := TO_C>AR*S6S(ATEH +(6+;

    t,e_,27 PLS_INTEGER := TO_NUMBER*TO_C>AR*S6S(ATEH +>>+;

    BEGIN

    I9 *t,e_,27 BETEEN AN( ! AN( *t,e_%a NOT IN *+SAT+H+SUN+ T>EN

    RAISE_APPLICATION_ERROR*050H

    +Em$-ee 7e&7%s &annt e %e-ete% %271nD t,e 2s1ness ,27s 8 AMan% 'PM+;

    EN( I9;

    EN(;

    @S>O ERRORS

    !'

    (ELETE 9ROM em$-ees

    >ERE "_1% = +SA_REP+

    AN( %e$a7tment_1% IS NULL;

    !#

    Pa&aDe SPECI9ICATION

  • 7/23/2019 DEMO Codigos

    101/146

    CREATE OR REPLACE PACKAGE em$_$D IS

    T6PE em$_ta_t$e IS TABLE O9 em$-eesROT6PE;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_ema1- em$-ees.ema1-T6PEH

    $_" em$-ees."_1%T6PE (E9AULT +SA_REP+H

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H$_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0;

    PROCE(URE a%%_em$-ee*

    $_J7st_name em$-ees.J7st_nameT6PEH

    $_-ast_name em$-ees.-ast_nameT6PEH

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e;

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e;

  • 7/23/2019 DEMO Codigos

    102/146

    PROCE(URE 1n1t_%e$a7tments;

    PROCE(URE $71nt_em$-ee*$_7e&_em$ em$-ees7t$e;

    PROCE(URE s,_em$-ees;

    @4 Ne set_sa-a7 $7&e%27e 4@

    PROCE(URE set_sa-a7*$_"1% )ARC>ARH $_m1n_sa-a7 NUMBER;

    EN( em$_$D;

    @

    S>O ERRORS

    Pa&aDe BO(6

    CREATE OR REPLACE PACKAGE BO(6 em$_$D IS

    T6PE -ean_ta_t$e IS TABLE O9 BOOLEAN

    IN(E? B6 BINAR6_INTEGER;

  • 7/23/2019 DEMO Codigos

    103/146

    $_mD7 em$-ees.manaDe7_1%T6PE (E9AULT 5H

    $_sa- em$-ees.sa-a7T6PE (E9AULT 000H

    $_&mm em$-ees.&mm1ss1n_$&tT6PE (E9AULT 0H

    $_%e$t1% em$-ees.%e$a7tment_1%T6PE (E9AULT 0 IS

    Ne -&a- $7&e%27e

    PROCE(URE a2%1t_neem$ IS

    PRAGMA AUTONOMOUS_TRANSACTION;

    2se7_1% )ARC>AR*0 := USER;

    BEGIN INSERT INTO -D_neem$ *ent7_1%H 2se7_1%H -D_t1meH name

    )ALUES *-D_neem$_se.NE?T)ALH 2se7_1%H ss%ateH$_J7st_name33+ +33$_-ast_name;

    COMMIT;

    EN( a2%1t_neem$;

    BEGIN a%%_em$-ee

    I9 EN

    a2%1t_neem$;

    INSERT INTO em$-ees*em$-ee_1%H J7st_nameH -ast_nameH ema1-H

    "_1%H manaDe7_1%H ,17e_%ateH sa-a7H &mm1ss1n_$&tH %e$a7tment_1%

    )ALUES *em$-ees_se.NE?T)ALH $_J7st_nameH $_-ast_nameH $_ema1-H

    $_"H $_mD7H TRUNC*S6S(ATEH $_sa-H $_&mmH $_%e$t1%;

    ELSERAISE_APPLICATION_ERROR *00H +In

  • 7/23/2019 DEMO Codigos

    104/146

    $_ema1- em$-ees.ema1-t$e;

    BEGIN

    $_ema1- := UPPER*SUBSTR*$_J7st_nameH H 33SUBSTR*$_-ast_nameH H#;

    a%%_em$-ee*$_J7st_nameH $_-ast_nameH $_ema1-H $_%e$t1% =$_%e$t1%;

    EN(;

    PROCE(URE Det_em$-ee*

    $_em$1% IN em$-ees.em$-ee_1%T6PEH

    $_sa- OUT em$-ees.sa-a7T6PEH

    $_" OUT em$-ees."_1%T6PE IS

    BEGIN

    SELECT sa-a7H "_1%

    INTO $_sa-H $_"

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$1%;

    EN( Det_em$-ee;

    9UNCTION Det_em$-ee*$_em$_1% em$-ees.em$-ee_1%t$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    RETURN 7e&_em$;

    EN(;

    9UNCTION Det_em$-ee*$_8am1-_name em$-ees.-ast_namet$e

    7et27n em$-ees7t$e IS

    7e&_em$ em$-ees7t$e;

    BEGIN

  • 7/23/2019 DEMO Codigos

    105/146

    SELECT 4 INTO 7e&_em$

    9ROM em$-ees

    >ERE -ast_name = $_8am1-_name;

    RETURN 7e&_em$;

    EN(;

    @4 Ne Det_em$-ees $7&e%27e. 4@

    PROCE(URE Det_em$-ees*$_%e$t_1% em$-ees.%e$a7tment_1%t$e IS

    BEGIN

    SELECT 4 BULK COLLECT INTO em$_ta-e 9ROM EMPLO6EES

    >ERE %e$a7tment_1% = $_%e$t_1%;

    EN(;

    PROCE(URE 1n1t_%e$a7tments IS

    BEGIN

    9OR 7e& IN *SELECT %e$a7tment_1% 9ROM %e$a7tments

    LOOP

  • 7/23/2019 DEMO Codigos

    106/146

    PROCE(URE s,_em$-ees IS

    BEGIN

    I9 em$_ta-e IS NOT NULL T>EN

    (BMS_OUTPUT.PUT_LINE*+Em$-ees 1n Pa&aDe ta-e+;

    9OR 1 IN .. em$_ta-e.COUNT

    LOOP

    $71nt_em$-ee*em$_ta-e*1;

    EN( LOOP;

    EN( I9;

    EN( s,_em$-ees;

    9UNCTION

  • 7/23/2019 DEMO Codigos

    107/146

    UP(ATE em$-ees

    SET sa-a7 = $_m1n_sa-a7

    >ERE em$-ee_1% = 7e&_em$.em$-ee_1%;

    EN( LOOP;

    EN( set_sa-a7;

    BEGIN

    1n1t_%e$a7tments;

    EN( em$_$D;

    @

    S>O ERRORS!!

    CREATE OR REPLACE TRIGGER 2$%_m1nsa-a7_t7D

    A9TER UP(ATE O9 m1n_sa-a7 ON OBS

    9OR EAC> RO

    BEGIN

    em$_$D.set_sa-a7*:ne."_1%H :ne.m1n_sa-a7;

    EN(;

    @

    S>O ERRORS

    !

    SELECT em$-ee_1%H -ast_nameH sa-a7

    9ROM em$-ees

    >ERE "_1% = +IT_PROG+;

    UP(ATE "s

    SET m1n_sa-a7 = m1n_sa-a7 000

    >ERE "_1% = +IT_PROG+;

    0

    CREATE OR REPLACE PACKAGE "s_$D IS

    PROCE(URE 1n1t1a-1e;

    9UNCTION Det_m1nsa-a7*$_"1% )ARC>AR RETURN NUMBER;

  • 7/23/2019 DEMO Codigos

    108/146

    9UNCTION Det_maxsa-a7*$_"1% )ARC>AR RETURN NUMBER;

    PROCE(URE set_m1nsa-a7*$_"1% )ARC>ARH $_m1n_sa-a7 NUMBER;

    PROCE(URE set_maxsa-a7*$_"1% )ARC>ARH $_max_sa-a7 NUMBER;

    EN( "s_$D;

    @

    S>O ERRORS

    CREATE OR REPLACE PACKAGE BO(6 "s_$D IS

    T6PE "s_ta_t$e IS TABLE O9 "s7t$e

    IN(E? B6 "s."_1%t$e;

    "sta "s_ta_t$e;

    PROCE(URE 1n1t1a-1e IS

    BEGIN

    9OR 7e&_" IN *SELECT 4 9ROM "s

    LOOP

    "sta*7e&_"."_1% := 7e&_";

    EN( LOOP;

    EN( 1n1t1a-1e;

    9UNCTION Det_m1nsa-a7*$_"1% )ARC>AR RETURN NUMBER IS

    BEGIN

    RETURN "sta*$_"1%.m1n_sa-a7;

    EN( Det_m1nsa-a7;

    9UNCTION Det_maxsa-a7*$_"1% )ARC>AR RETURN NUMBER IS

    BEGIN

    RETURN "sta*$_"1%.max_sa-a7;

    EN( Det_maxsa-a7;

    PROCE(URE set_m1nsa-a7*$_"1% )ARC>ARH $_m1n_sa-a7 NUMBER IS

    BEGIN

    "sta*$_"1%.max_sa-a7 := $_m1n_sa-a7;

  • 7/23/2019 DEMO Codigos

    109/146

    EN( set_m1nsa-a7;

    PROCE(URE set_maxsa-a7*$_"1% )ARC>ARH $_max_sa-a7 NUMBER IS

    BEGIN

    "sta*$_"1%.max_sa-a7 := $_max_sa-a7;

    EN( set_maxsa-a7;

    EN( "s_$D;

    @

    S>O ERRORS

    CREATE OR REPLACE PROCE(URE &,e&_sa-a7 *$_t,e_" )ARC>ARH$_t,e_sa-a7 NUMBER IS

  • 7/23/2019 DEMO Codigos

    110/146

    CREATE OR REPLACE TRIGGER 1n1t_"$D_t7D

    BE9ORE INSERT OR UP(ATE ON "s

    CALL "s_$D.1n1t1a-1e

    @

    S>O ERRORS

    SELECT em$-ee_1%H -ast_nameH sa-a7

    9ROM em$-ees

    >ERE "_1% = +IT_PROG+;

    UP(ATE "s

    SET m1n_sa-a7 = m1n_sa-a7 000

    >ERE "_1% = +IT_PROG+;

    SELECT em$-ee_1%H -ast_nameH sa-a7

    9ROM em$-ees

    >ERE "_1% = +IT_PROG+;

    5

    E?ECUTE em$_$D.a%%_em$-ee*+Ste

  • 7/23/2019 DEMO Codigos

    111/146

    >ERE -ast_name = +M7se+;

    !

    SELECT nameH t$eH$-s-_&%e_t$e as &%e_t$eH

    $-s-_$t1m1e_-e

  • 7/23/2019 DEMO Codigos

    112/146

    SET SER)EROUTPUT ON

    E?ECUTE(BMS_OUTPUT.PUT_LINE*(BMS_ARNING.GET_CATEGOR6*ZmessaDe;

    0'

    ALTER SESSION SET PLSL_CC9LAGS = +m_%e2D:9ALSEHm_t7a&1nD:9ALSE+;

    CREATE OR REPLACE PACKAGE m_$D AS

    SUBT6PE m_7ea- IS

    /I9 (BMS_(B_)ERSION.)ERSION F 0 /T>EN NUMBER; &,e& %ataase

    EN

    m_$1 := .0'0!!00!00#'''!'#;

    m_e := .#!!!!5055'0!##5''##5;

    /ELSE

    m_$1 := .0'0!!00!00#'''!'#%;

    m_e := .#!!!!5055'0!##5''##5%;

    /EN(

    EN( m_$D;

    @

    CREATE OR REPLACE PROCE(URE &17&-e_a7ea*7a%12s m_$D.m_7ea- IS

    m_a7ea m_$D.m_7ea-;

    m_%atat$e )ARC>AR*0;

    BEGIN

  • 7/23/2019 DEMO Codigos

    113/146

    m_a7ea := m_$D.m_$1 4 7a%12s 4 7a%12s;

    (BMS_OUTPUT.PUT_LINE*+Ra%12s: + 33 TO_C>AR*7a%12s

    33 + A7ea: + 33 TO_C>AR*m_a7ea ;

    /I9 //m_%e2D /T>EN

    18 m_%e2D 1s TRUEH 72n sme %e2DD1nD &%e

    SELECT (ATA_T6PE INTO m_%atat$e 9ROM USER_ARGUMENTS

    >ERE OBECT_NAME = +CIRCLE_AREA+ AN( ARGUMENT_NAME =+RA(IUS+;

    (BMS_OUTPUT.PUT_LINE*+(atat$e 8 t,e RA(IUS a7D2ment 1s: + 33m_%atat$e;

    /EN(

    EN(;

    @

    0#

    T,e 8--1nD exam$-e ass2mes 2 a7e t,e st2%ent 1t, t,e a&&2nt

    7a'.SET SER)EROUTPUT ON

    CALL (BMS_PREPROCESSOR.PRINT_POST_PROCESSE(_SOURCE*+PACKAGE+H+ORA'+H +M6_PKG+;

    0!

    SET SER)EROUTPUT ON

    BEGIN

    /I9 (BMS_(B_)ERSION.)ER_LE_0_ /T>EN

    /ERROR +2ns2$$7te% %ataase 7e-ease.+ /EN(

    /ELSE

    (BMS_OUTPUT.PUT_LINE *+Re-ease + 33 (BMS_(B_)ERSION.)ERSION 33 +.+ 33

    (BMS_(B_)ERSION.RELEASE 33 + 1s s2$$7te%.+; Nte t,at t,1s COMMIT sntax 1s ne- s2$$7te% 1n 0.

  • 7/23/2019 DEMO Codigos

    114/146

    COMMIT RITE IMME(IATE NOAIT;

    /EN(

    EN(;

    @

    0

    (ECLARE

    t,e $a&aDe_text AR*#'#;

    9UNCTION Dene7ate_s$e& *$Dname )ARC>AR RETURN )ARC>AR AS

    BEGIN

    RETURN +CREATE PACKAGE + 33 $Dname 33 + AS

    PROCE(URE 7a1se_sa-a7 *em$_1% NUMBERH am2nt NUMBER;

    PROCE(URE J7e_em$-ee *em$_1% NUMBER;

    EN( + 33 $Dname 33 +;+;

    EN( Dene7ate_s$e&;

    9UNCTION Dene7ate_% *$Dname )ARC>AR RETURN )ARC>AR AS

    BEGIN

    RETURN +CREATE PACKAGE BO(6 + 33 $Dname 33 + AS

    PROCE(URE 7a1se_sa-a7 *em$_1% NUMBERH am2nt NUMBER IS

    BEGIN

    UP(ATE em$-ees SET sa-a7 = sa-a7 am2nt >ERE em$-ee_1% =em$_1%;

    EN( 7a1se_sa-a7;

    PROCE(URE J7e_em$-ee *em$_1% NUMBER IS

    BEGIN

    (ELETE 9ROM em$-ees >ERE em$-ee_1% = em$_1%;

    EN( J7e_em$-ee;

    EN( + 33 $Dname 33 +;+;

    EN( Dene7ate_%;

    BEGIN

  • 7/23/2019 DEMO Codigos

    115/146

    Dene7ate $a&aDe s$e&

    $a&aDe_text := Dene7ate_s$e&*+em$_a&t1ns+;

    &7eate an% 7a$ t,e $a&aDe s$e&

    S6S.(BMS_((L.CREATE_RAPPE(*$a&aDe_text;

    Dene7ate $a&aDe %

    $a&aDe_text := Dene7ate_%*+em$_a&t1ns+;

    &7eate an% 7a$ t,e $a&aDe %

    S6S.(BMS_((L.CREATE_RAPPE(*$a&aDe_text;EN(;

    @

    &a-- a $7&e%27e 87m t,e 7a$$e% $a&aDe

    CALL em$_a&t1ns.7a1se_sa-a7*0H 00;

    Use t,e USER_SOURCE %ata %1&t1na7

  • 7/23/2019 DEMO Codigos

    116/146

    5

    CREATE TABLE em$s AS

    SELECT 4 9ROM em$-ee;

    '

    SELECT "e&t_nameH "e&t_t$eH stat2s

    9ROM USER_OBECTS

    >ERE stat2s = +IN)ALI(+;

    #

    CREATE OR REPLACE PACKAGE &m$1-e_$D IS

    PROCE(URE mae*name )ARC>AR;

    PROCE(URE 7e&m$1-e;EN( &m$1-e_$D;

    @

    S>O ERRORS

    CREATE OR REPLACE PACKAGE BO(6 &m$1-e_$D IS

    PROCE(URE exe&2te*stmt )ARC>AR IS

    BEGIN

    (BMS_OUTPUT.PUT_LINE*stmt;

    E?ECUTE IMME(IATE stmt;

    EN(;

    9UNCTION Det_t$e*name )ARC>AR RETURN )ARC>AR IS

    $7&_t$e )ARC>AR*0 := NULL;

    BEGIN

    @4

    4 T,e RONUM = 1s a%%e% t t,e &n%1t1n

    4 t ens27e n- ne 7 1s 7et27ne% 18 t,e

    4 name 7e$7esents a PACKAGEH ,1&, ma a-s

    4 ,a

  • 7/23/2019 DEMO Codigos

    117/146

    4 t,e s$e&1J&at1n 7 % as se$a7ate

    4 &m$nents.

    4@

    SELECT "e&t_t$e INTO $7&_t$e

    9ROM 2se7_"e&ts

    >ERE "e&t_name = UPPER*name

    AN( RONUM = ;

    RETURN $7&_t$e;

    E?CEPTION

    >EN NO_(ATA_9OUN( T>EN

    RETURN NULL; EN(;

    PROCE(URE mae*name )ARC>AR IS

    stmt )ARC>AR*00;

    $7&_t$e )ARC>AR*0 := Det_t$e*name;

    BEGIN

    I9 $7&_t$e IS NOT NULL T>EN

    stmt := +ALTER +33 $7&_t$e 33+ +33 name 33+ COMPILE+;

    exe&2te*stmt;

    ELSE

    RAISE_APPLICATION_ERROR*000H

    +S2$7D7am +++33 name 33+++ %es nt ex1st+;

    EN( I9;

    EN( mae;

    PROCE(URE 7e&m$1-e IS

    stmt )ARC>AR*00;

    "_name 2se7_"e&ts."e&t_namet$e;

    "_t$e 2se7_"e&ts."e&t_t$et$e;

    BEGIN

    9OR "7e& IN *SELECT "e&t_nameH "e&t_t$e

  • 7/23/2019 DEMO Codigos

    118/146

    9ROM 2se7_"e&ts

    >ERE stat2s = +IN)ALI(+

    AN( "e&t_t$e F +PACKAGE BO(6+

    LOOP

    stmt := +ALTER +33 "7e&."e&t_t$e 33+ +33

    "7e&."e&t_name 33+ COMPILE+;

    exe&2te*stmt;

    EN( LOOP;

    EN( 7e&m$1-e;

    EN( &m$1-e_$D;@

    S>O ERRORS

    !

    E?ECUTE &m$1-e_$D.7e&m$1-e

    SELECT "e&t_nameH "e&t_t$eH stat2s

    9ROM USER_OBECTS

    >ERE stat2s = +IN)ALI(+;

    0

    CREATE OR REPLACE PROCE(URE ne_"*

    $_"1% IN "s."_1%T6PEH

    $_t1t-e IN "s."_t1t-eT6PEH

  • 7/23/2019 DEMO Codigos

    119/146

    @

    S>O ERRORS

    SET SER)EROUTPUT ON

    E?ECUTE ne_" *+S6_ANAL+H +Sstem Ana-st+H '000

    SELECT 4

    9ROM "s

    >ERE "_1% = +S6_ANAL+;

    COMMIT;

    CREATE OR REPLACE PROCE(URE a%%_"_,1st*

    $_em$_1% IN em$-ees.em$-ee_1%T6PEH

    $_ne_"1% IN "s."_1%T6PE IS

    BEGIN

    INSERT INTO "_,1st7

    SELECT em$-ee_1%H ,17e_%ateH S6S(ATEH "_1%H %e$a7tment_1%

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    UP(ATE em$-ees

    SET ,17e_%ate = S6S(ATEH

    "_1% = $_ne_"1%H

    sa-a7 = *SELECT m1n_sa-a7 500

    9ROM "s

    >ERE "_1% = $_ne_"1%

    >ERE em$-ee_1% = $_em$_1%;

    (BMS_OUTPUT.PUT_LINE *+A%%e% em$-ee + 33 $_em$_1% 33

    + %eta1-s t t,e OB_>ISTOR6 ta-e+;

    (BMS_OUTPUT.PUT_LINE *+U$%ate% &277ent " 8 em$-ee + 33

    $_em$_1%33 + t +33 $_ne_"1%;

  • 7/23/2019 DEMO Codigos

    120/146

    E?CEPTION

    >EN NO_(ATA_9OUN( T>EN

    RAISE_APPLICATION_ERROR *000H +Em$-ee %es nt ex1stQ+;

    EN( a%%_"_,1st;

    @

    S>O ERRORS

    ALTER TABLE em$-ees (ISABLE ALL TRIGGERS;

    ALTER TABLE "s (ISABLE ALL TRIGGERS;

    ALTER TABLE "_,1st7 (ISABLE ALL TRIGGERS;

    5ALTER TABLE em$-ees (ISABLE ALL TRIGGERS;

    ALTER TABLE "s (ISABLE ALL TRIGGERS;

    ALTER TABLE "_,1st7 (ISABLE ALL TRIGGERS;

    '

    SELECT 4 9ROM "_,1st7

    >ERE em$-ee_1% = 0';

    SELECT "_1%H sa-a7 9ROM em$-ees

    >ERE em$-ee_1% = 0';

    COMMIT;

    #

    ALTER TABLE em$-ees ENABLE ALL TRIGGERS;

    ALTER TABLE "s ENABLE ALL TRIGGERS;

    ALTER TABLE "_,1st7 ENABLE ALL TRIGGERS;

    !

    CREATE OR REPLACE PROCE(URE 2$%_"sa-*

    $_"1% IN "s."_1%t$eH

    $_ne_m1nsa- IN "s.m1n_sa-a7t$eH

    $_ne_maxsa- IN "s.max_sa-a7t$e IS

  • 7/23/2019 DEMO Codigos

    121/146

    e_7es27&e_2s E?CEPTION;

    e_sa-_e777 E?CEPTION;

    PRAGMA E?CEPTION_INIT *e_7es27&e_2s H 5;

    BEGIN

    I9 *$_ne_maxsa- F $_ne_m1nsa- T>EN

    RAISE e_sa-_e777;

    EN( I9;

    SELECT INTO ERE "_1% = $_"1%;

    E?CEPTION

    >EN e_7es27&e_2s T>EN

    RAISE_APPLICATION_ERROR *000H

    + 1n87mat1n 1s &277ent- -&e%H t7 -ate7.+;

    >EN NO_(ATA_9OUN( T>EN

    RAISE_APPLICATION_ERROR*000H +T,1s " I( %es nt ex1st+;

    >EN e_sa-_e777 T>EN

    RAISE_APPLICATION_ERROR*000H

    +(ata e777: Max sa-a7 s,2-% e m7e t,an m1n sa-a7+;

    EN( 2$%_"sa-;

    @

    S>O ERRORS

    SET SERE)EROUTPUT ON

    E?ECUTE 2$%_"sa-*+S6_ANAL+H #000H 0

    0

  • 7/23/2019 DEMO Codigos

    122/146

    ALTER TABLE em$-ees (ISABLE ALL TRIGGERS;

    ALTER TABLE "s (ISABLE ALL TRIGGERS;

    E?ECUTE 2$%_"sa-*+S6_ANAL+H #000H 000

    SELECT 4

    9ROM "s

    >ERE "_1% = +S6_ANAL+;

    ALTER TABLE em$-ees ENABLE ALL TRIGGERS;

    ALTER TABLE "s ENABLE ALL TRIGGERS;

    ALTER TRIGGER se&27e_em$-ees (ISABLE;

    5

    ALTER TABLE em$-ees

    A(( *ex&ee%_aAR* (E9AULT +NO+

    CONSTRAINT em$-ees_ex&ee%_aECK *ex&ee%_a

  • 7/23/2019 DEMO Codigos

    123/146

    >ERE "_1% = "1%;

    RETURN a

  • 7/23/2019 DEMO Codigos

    124/146

    !

    CREATE OR REPLACE 9UNCTION Det_ea7s_se7EN &_",_&s7NOT9OUN(;

  • 7/23/2019 DEMO Codigos

    125/146

    0

    SET SER)EROUTPUT ON

    BEGIN

    (BMS_OUTPUT.PUT_LINE *

    +Em$-ee 0' ,as 7e% + 33 Det_ea7s_se7ERE em$-ee_1% = $_em$_em$1%_t$e;

    BEGIN

    OPEN &_em$"_&s7;

    9ETC> &_em$"_&s7 BULK COLLECT INTO

  • 7/23/2019 DEMO Codigos

    126/146

    CLOSE &_em$"_&s7;

    RETURN O ERRORS

    SET SER)EROUTPUT ON

    BEGIN

    (BMS_OUTPUT.PUT_LINE*+Em$-ee #' 7e% n + 33

    Det_"_&2nt*#' 33 + %1e7ent "s.+;

    EN(;

    @

    CREATE OR REPLACE PACKAGE em$"_$D IS

    T6PE "s_ta-e_t$e IS TABLE O9 "s."_1%t$e;

    PROCE(URE a%%_"_,1st*

    $_em$_1% IN em$-ees.em$-ee_1%T6PEH

    $_ne_"1% IN "s."_1%T6PE;

    9UNCTION Det_"_&2nt*

    $_em$_1% IN em$-ees.em$-ee_1%T6PE RETURN NUMBER;

    9UNCTION Det_ea7s_se7

  • 7/23/2019 DEMO Codigos

    127/146

    PROCE(URE ne_"*

    $_"1% IN "s."_1%T6PEH

    $_t1t-e IN "s."_t1t-eT6PEH

    $_m1nsa- IN "s.m1n_sa-a7T6PE;

    PROCE(URE 2$%_"sa-*

    $_"1% IN "s."_1%t$eH

    $_ne_m1nsa- IN "s.m1n_sa-a7t$eH

    $_ne_maxsa- IN "s.max_sa-a7t$e;

    EN( em$"_$D;

    @S>O ERRORS

    5

    CREATE OR REPLACE PACKAGE BO(6 em$"_$D IS

    PROCE(URE a%%_"_,1st*

    $_em$_1% IN em$-ees.em$-ee_1%T6PEH

    $_ne_"1% IN "s."_1%T6PE IS

    BEGIN

    INSERT INTO "_,1st7

    SELECT em$-ee_1%H ,17e_%ateH S6S(ATEH "_1%H %e$a7tment_1%

    9ROM em$-ees

    >ERE em$-ee_1% = $_em$_1%;

    UP(ATE em$-ees

    SET ,17e_%ate = S6S(ATEH

    "_1% = $_ne_"1%H

    sa-a7 = *SELECT m1n_sa-a7 500

    9ROM "s

    >ERE "_1% = $_ne_"1%

    >ERE em$-ee_1% = $_em$_1%;

    (BMS_OUTPUT.PUT_LINE *+A%%e% em$-ee + 33 $_em$_1% 33

    + %eta1-s t t,e OB_>ISTOR6 ta-e+;

    (BMS_OUTPUT.PUT_LINE *+U$%ate% &277ent " 8 em$-ee + 33

  • 7/23/2019 DEMO Codigos

    128/146

    $_em$_1%33 + t +33 $_ne_"1%;

    E?CEPTION

    >EN NO_(ATA_9OUN( T>EN

    RAISE_APPLICATION_ERROR *000H +Em$-ee %es nt ex1stQ+;

    EN( a%%_"_,1st;

    9UNCTION Det_"_&2nt*

    $_em$_1% IN em$-ees.em$-ee_1%T6PE RETURN NUMBER IS

    ERE em$-ee_1% = $_em$_1%;

    BEGIN

    OPEN &_em$"_&s7;

    9ETC> &_em$"_&s7 BULK COLLECT INTO

  • 7/23/2019 DEMO Codigos

    129/146

    SELECT MONT>S_BETEEN*en%_%ateH sta7t_%ate@ ERE em$-ee_1% = $_em$_1%;

  • 7/23/2019 DEMO Codigos

    130/146

    (BMS_OUTPUT.PUT_LINE *$_"1% 33 + + 33 $_t1t-e 33+ +33

    $_m1nsa- 33 + + 33 ERE "_1% = $_"1%

    9OR UP(ATE O9 m1n_sa-a7 NOAIT;

    UP(ATE "s

    SET m1n_sa-a7 = $_ne_m1nsa-H

    max_sa-a7 = $_ne_maxsa-

    >ERE "_1% = $_"1%;

    E?CEPTION

    >EN e_7es27&e_2s T>EN

    RAISE_APPLICATION_ERROR *000H

    + 1n87mat1n 1s &277ent- -&e%H t7 -ate7.+;

    >EN NO_(ATA_9OUN( T>EN

    RAISE_APPLICATION_ERROR*000H +T,1s " I( %es nt ex1st+;

    >EN e_sa-_e777 T>EN

    RAISE_APPLICATION_ERROR*000H

  • 7/23/2019 DEMO Codigos

    131/146

    +(ata e777: Max sa-a7 s,2-% e m7e t,an m1n sa-a7+;

    EN( 2$%_"sa-;

    EN( em$"_$D;

    @

    S>O ERRORS

    '

    SET SER)EROUTPUT ON

    E?ECUTE em$"_$D.ne_"*+PR_MAN+H +P2-1& Re-at1ns ManaDe7+H '50

    #

    SET SER)EROUTPUT ON

    ALTER TRIGGER 2$%ate_"_,1st7 (ISABLE;

    E?ECUTE em$"_$D.a%%_"_,1st*0H +PR_MAN+

    ALTER TRIGGER 2$%ate_"_,1st7 ENABLE;

    !

    SELECT 4 9ROM "s >ERE "_1% = +PR_MAN+;

    SELECT 4 9ROM "_,1st7 >ERE em$-ee_1% = 0;

    SELECT "_1%H sa-a7 9ROM em$-ees >ERE em$-ee_1% = 0;

    CREATE OR REPLACE TRIGGER &,e&_sa-_7anDe

    BE9ORE UP(ATE O9 m1n_sa-a7H max_sa-a7 ON "s

    9OR EAC> RO

    (ECLARE

  • 7/23/2019 DEMO Codigos

    132/146

    RAISE e_1nEN e_1nEN

    RAISE_APPLICATION_ERROR*0550H

    +Em$-ees ex1st ,se sa-a7 1s 2t 8 t,e s$e&1Je% 7anDe. +33

    +T,e7e87e t,e s$e&1Je% sa-a7 7anDe &annt e 2$%ate%.+;

    EN( &,e&_sa-_7anDe;

    @

    S>O ERRORS

    50SELECT 4 9ROM "s

    >ERE "_1% = +S6_ANAL+;

    SELECT em$-ee_1%H -ast_nameH sa-a7

    9ROM em$-ees

    >ERE "_1% = +S6_ANAL+;

    UP(ATE "s

    SET m1n_sa-a7 = 5000H max_sa-a7 = #000

    >ERE "_1% = +S6_ANAL+;

    SELECT 4 9ROM "s

    >ERE "_1% = +S6_ANAL+;

    5

    UP(ATE "s

    SET m1n_sa-a7 = #000H max_sa-a7 = !000

    >ERE "_1% = +S6_ANAL+;

    5

    CREATE OR REPLACE PACKAGE

  • 7/23/2019 DEMO Codigos

    133/146

    $_8name IN meme7.J7st_nameT6PE (E9AULT NULLH

    $_a%%7ess IN meme7.a%%7essT6PE (E9AULT NULLH

    $_&1t IN meme7.&1tT6PE (E9AULT NULLH

    $_$,ne IN meme7.$,neT6PE (E9AULT NULL;

    9UNCTION ne_7enta-

    *$_meme71% IN 7enta-.meme7_1%T6PEH

    $_t1t-e1% IN 7enta-.t1t-e_1%T6PE

    RETURN (ATE;

    9UNCTION ne_7enta- *$_meme7name IN meme7.-ast_nameT6PEH

    $_t1t-e1% IN 7enta-.t1t-e_1%T6PE

    RETURN (ATE;

    PROCE(URE 7et27n_mEN

    RAISE_APPLICATION_ERROR*000H

    +T,e n2me7 1s ass1Dne% t t,1s meme7 1s a-7ea% 1n 2seH +33

    +t7 aDa1n.+;

    ELSI9 e77&%e = T>EN RAISE_APPLICATION_ERROR*000H $_&ntext 33

  • 7/23/2019 DEMO Codigos

    134/146

    + ,as attem$te% t 2se a 87e1Dn e

  • 7/23/2019 DEMO Codigos

    135/146

    $_t1t-e1% IN 7enta-.t1t-e_1%T6PEH

    $_&$1% IN 7enta-.&$_1%T6PEH

    $_sts IN t1t-e_&$.stat2sT6PE IS

    AR*;

    CURSOR &_7es_&s7 IS

    SELECT 4

    9ROM 7ese7ERE t1t-e_1% = $_t1t-e1%;

    BEGIN

    SELECT ++ INTO ERE t1t-e_1% = $_t1t-e1%;

    UP(ATE 7enta-

    SET a&t_7et_%ate = S6S(ATE

    >ERE t1t-e_1% = $_t1t-e1%

    AN( &$_1% = $_&$1% AN( a&t_7et_%ate IS NULL;

    UP(ATE t1t-e_&$

    SET stat2s = UPPER*$_sts

    >ERE t1t-e_1% = $_t1t-e1% AN( &$_1% = $_&$1%;

    9OR 7es_7e& IN &_7es_&s7 LOOP

    I9 &_7es_&s79OUN( T>EN

    (BMS_OUTPUT.PUT_LINE*+P2t t,1s mERS T>EN

    ex&e$t1n_,an%-e7*SLCO(EH +RETURN_MO)IE+;

    EN( 7et27n_m

  • 7/23/2019 DEMO Codigos

    136/146

    $_t1t-e1% IN 7enta-.t1t-e_1%T6PE RETURN (ATE IS

    CURSOR &_&$_&s7 IS

    SELECT 4 9ROM t1t-e_&$

    >ERE t1t-e_1% = $_t1t-e1%

    9OR UP(ATE;

    EN

    UP(ATE t1t-e_&$

    SET stat2s = +RENTE(+ >ERE CURRENT O9 &_&$_&s7;

    INSERT INTO 7enta-*_%ateH &$_1%H meme7_1%H

    t1t-e_1%H ex$_7et_%ate

    )ALUES *S6S(ATEH &$_7e&.&$_1%H $_meme71%H

    $_t1t-e1%H S6S(ATE ;

    EN

    ex&e$t1n_,an%-e7*SLCO(EH +NE_RENTAL+;

    RETURN NULL;

    EN( ne_7enta-;

  • 7/23/2019 DEMO Codigos

    137/146

    9UNCTION ne_7enta-*

    $_meme7name IN meme7.-ast_nameT6PEH

    $_t1t-e1% IN 7enta-.t1t-e_1%T6PE RETURN (ATE IS

    CURSOR &_&$_&s7 IS

    SELECT 4 9ROM t1t-e_&$

    >ERE t1t-e_1% = $_t1t-e1%

    9OR UP(ATE;

    EN

    UP(ATE t1t-e_&$

    SET stat2s = +RENTE(+

    >ERE CURRENT O9 &_&$_&s7;

    INSERT INTO 7enta- *_%ateH &$_1%H meme7_1%H

    t1t-e_1%H ex$_7et_%ate

    )ALUES *S6S(ATEH &$_7e&.&$_1%H

  • 7/23/2019 DEMO Codigos

    138/146

    COMMIT;

    I9 EN

    RETURN*S6S(ATE ;

    ELSE

    7ese7R* 33

    meme7_7e&.-ast_name 33 +H + 33 meme7_7e&.J7st_name;

    EN( LOOP;

    RETURN NULL;

    >EN OT>ERS T>EN

    ex&e$t1n_,an%-e7*SLCO(EH +NE_RENTAL+;

    RETURN NULL;

    EN( ne_7enta-;

    PROCE(URE ne_meme7*

    $_-name IN meme7.-ast_nameT6PEH

    $_8name IN meme7.J7st_nameT6PE (E9AULT NULLH

    $_a%%7ess IN meme7.a%%7essT6PE (E9AULT NULLH

    $_&1t IN meme7.&1tT6PE (E9AULT NULLH

    $_$,ne IN meme7.$,neT6PE (E9AULT NULL IS

    BEGIN

    INSERT INTO meme7*meme7_1%H -ast_nameH J7st_nameH

    a%%7essH &1tH $,neH "1n_%ate

    )ALUES*meme7_1%_se.NE?T)ALH $_-nameH $_8nameH

    $_a%%7essH $_&1tH $_$,neH S6S(ATE;

  • 7/23/2019 DEMO Codigos

    139/146

    COMMIT;

    E?CEPTION

    >EN OT>ERS T>EN

    ex&e$t1n_,an%-e7*SLCO(EH +NE_MEMBER+;

    EN( ne_meme7;

    EN( O ERRORS

    5

    E?ECUTE aas+H +ames+H +C,estn2t St7eet+H+Bstn+H +'#5'#+

    E?ECUTE 1aat,a (71

  • 7/23/2019 DEMO Codigos

    140/146

    OR **TO_C>AR*S6S(ATEH +(+ = #

    AN( *TO_(ATE*TO_C>AR*S6S(ATEH +,,:m1+H +,,:m1+ NOTBETEEN

    TO_(ATE*+0!:00+H +,,:m1+ AN( TO_(ATE*+:00+H +,,:m1+ T>EN

    RAISE_APPLICATION_ERROR*0H

    +(ata &,anDes 7est71&te% t [&e ,27s.+;

    EN( I9;

    EN( t1me_&,e&;

    @

    S>O ERRORS

    5#

    CREATE OR REPLACE TRIGGER meme7_t71D

    BE9ORE INSERT OR UP(ATE OR (ELETE ON meme7

    CALL t1me_&,e&

    @

    CREATE OR REPLACE TRIGGER 7enta-_t71D

    BE9ORE INSERT OR UP(ATE OR (ELETE ON 7enta-

    CALL t1me_&,e&

    @

    CREATE OR REPLACE TRIGGER t1t-e_&$_t71D

    BE9ORE INSERT OR UP(ATE OR (ELETE ON t1t-e_&$

    CALL t1me_&,e&

    @

    CREATE OR REPLACE TRIGGER t1t-e_t71D

    BE9ORE INSERT OR UP(ATE OR (ELETE ON t1t-eCALL t1me_&,e&

    @

    CREATE OR REPLACE TRIGGER 7ese7

  • 7/23/2019 DEMO Codigos

    141/146

    TO_C>AR*CURRENT_(ATEH +((MON6666 >>:MI+ CURR_(ATE

    9ROM (UAL;

    C,anDe 27 t1me ne 2s1nDe \3]>>:MI 87mat s2&, t,at t,e &277ent

    t1me 7et27ns a t1me eteen '$m an% !am

    ALTER SESSION SET TIME_VONE=+0#:00+;

    A%% a ne meme7 *87 a sam$-e test

    E?ECUTE e-- 7-%Q+;

    EN(;

    @

    'Rem

    Rem />ea%e7: 2t-%t7ee.s-H< . @0@' ':: RKOOI Sta /

    Rem

    Rem C$71D,t *& O7a&-e C7$7at1n

    Rem NAME

    Rem %e$t7ee.s- S, "e&ts 7e&27s1

  • 7/23/2019 DEMO Codigos

    142/146

    Rem "e&ts t,at a7e *7e&27s1

  • 7/23/2019 DEMO Codigos

    143/146

    Rem 71 0@@ C7eat1n

    %7$ se2en&e %e$t7ee_se

    @

    &7eate se2en&e %e$t7ee_se &a&,e 00 @4 &a&,e 00 t mae se2en&e8aste7 4@

    @

    %7$ ta-e %e$t7ee_tem$ta

    @

    &7eate ta-e %e$t7ee_tem$ta

    *

    "e&t_1% n2me7H

    7e8e7en&e%_"e&t_1% n2me7H

    nest_-e

  • 7/23/2019 DEMO Codigos

    144/146

    &nne&t $717 "e&t_1% = 7e8e7en&e%_"e&t_1%

    sta7t 1t, 7e8e7en&e%_"e&t_1% = %e$t7ee_J--."_1%;

    ex&e$t1n

    ,en n_%ata_82n% t,en

    7a1se_a$$-1&at1n_e777*0000H +ORU00: + 33

    t$e 33 + + 33 s&,ema 33 +.+ 33 name 33 + as nt 82n%.+;

    en%;

    @

    %7$

  • 7/23/2019 DEMO Codigos

    145/146

    an% .ne7W = 2.2se7W

    an% 2.name = D.D-nan

    an% D.D-,%a%7 = .D-78,%-

    an% .D-,%a%7 = a.D-,%a%7 @4 mae s27e 1t 1s nt a t7ans1t1

  • 7/23/2019 DEMO Codigos

    146/146

    87m %e$t7ee

    D72$ seW @4 S 2se7 &an m1t s7t ,en se-e&t1nD 87m 1%e$t7ee 4@

    @