curso de oracle del colegio de ingenieros

Upload: erick

Post on 21-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    1/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 1

    C [email protected]

    1. /

    / 11

    Programacin PL/SQL-Carlos Janjachi 2

    1.1 /Pca cadade adcae a SQL c: Maac de e a a de ce. Aacea e cd e e ed e e cee. Mae de ecece. Tabaa c aabe, ae, cecce, e, ae,

    be, ce, ec.

    1.2 B / E be de cd e e eeca e a e. N e aacead e a bae de da. N ede e aad dede a e.

    Ee:DECLAREv_Date TIMESTAMP;BEGINSELECT systimestamp - 1/24 INTO v_Date FROM dual;DBMS_OUTPUT.PUT_LINE('One hour ago: '||v_Date);END;

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    2/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 3

    1.3. /

    La eecc de be PL/SQL aa a ee eaa: E cd e ead a PL/SQL Ee Se aea. E ae ceda e ea a Pceda Saee Eec. E ae e ea a SQL Saee Eec.

    Pae: Had SPce: Sa Seca (be e) Aa eac e SQL ea (aed ).

    Geea a eeca aeada (a) + a Gada aed e e SQL ea.

    /

    Programacin PL/SQL-Carlos Janjachi 4

    B /

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    3/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 5

    /

    /

    Programacin PL/SQL-Carlos Janjachi 6

    1.4. / E

    Se ecea eee e: Oace ee Oace F (Ve 3 ad ae) SQL*Me (Ve 5 ad ae) Oace Re (Ve 2 ad ae) Oace Gac (Ve 2 ad ae)

    Be a ead dede: Oace ece Oace Ca Ieace (OCI)

    SQL*P Oace Eee Maae

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    4/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 7

    ESQL, PL/SQL, ad Jaa

    ://.ac..ac./de/ac/de/ace_9/dc/ee.901/a88856/c16.

    /

    Programacin PL/SQL-Carlos Janjachi 8

    C [email protected]

    2. /

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    5/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 9

    2.1. /Aa eaea de / :

    SQL P SQL Deee ://.ace.c CAST SQLBde ://.caae.c FROG ://cee.e/ec/ace/ PLEd ://.becae.c SQL Naa ://.e.c TOAD ://.ad.c

    Tab e ede ace dea / dede IDE: Nebea JDeee.

    /

    Programacin PL/SQL-Carlos Janjachi 10

    2.2. DReee:

    Tad de E1522301, Pa 14.

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    6/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 11

    DBC DSQLDeee a de aa e e ee a ce a a bae

    de da c: IBM DB2 db2cc.a, db2cc_cee_c.a MSQL cecaa5.0.4b.a SQL See d1.2.a

    /

    Programacin PL/SQL-Carlos Janjachi 12

    Aa caaceca de SQLDeee :C

    SQLDeee ee ca cee ee a eecce debe /.

    F CTRL+F7, aa da e a (aad) eada de a eaea

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    7/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 13

    C BD SQLDeee ee cea be de bae de da c aba, dce,

    a, ececa, cede aacead, ec.

    /

    Programacin PL/SQL-Carlos Janjachi 14

    C Ceac de aba caaceca.

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    8/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 15

    E D SQLDeee ee ea da de a aba a a:

    c ed e ade e

    /

    Programacin PL/SQL-Carlos Janjachi 16

    E SQLDeee dad

    ://.ace.c/ece/deee/deee/dad/de.

    SQLDeee dceac://dad.ace.c/dc/cd/E15846_01/de.

    CAST SQLBde ://.caae.c FROG ://cee.e/ec/ace/ PLEd ://.becae.c SQL Naa ://.e.c TOAD ://.ad.c

    /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    9/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 17

    C [email protected]

    3. / B

    / 11

    Programacin PL/SQL-Carlos Janjachi 18

    3.1. E B /La eca de be / cee a ee ecce: DECLARATION (Oca)

    Uad aa decaa a aabe de da e e ad ee be.

    Lad de aabe cae. EXECUTION [BEGIN, END] (Reed) E e be de eecc. Debe cee / eada aa ca. Sa cad DML. EXCEPTION (Oca)

    Uad aa aaa ee e ce dae a eecc.

    / B

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    10/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 19

    3.2. B / A. E be / c a eca baca. N e e aa be e aacea e a bae de da. Pede aa a aa (cede, ce, aee) e

    a be a.

    / B

    Programacin PL/SQL-Carlos Janjachi 20

    / B

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    11/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 21

    3.3. B / A. U be adad e ae e cee a bbe. L bbe e ee e a ecce EXECUTION EXCEPTION, e

    DECLARATION.

    / B

    Programacin PL/SQL-Carlos Janjachi 22

    / B

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    12/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 23

    3.4. E C. Dae a cac de be / bad (cede

    ce) ace eaa a ee cbac: Sa Deedeca de be Pe

    S e be bad cee ee, ace deee eae aae ead ad a be.

    Paa be a aca e ee aa decaee a ede eecc.

    / B

    Programacin PL/SQL-Carlos Janjachi 24

    / B

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    13/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 25

    / B

    Programacin PL/SQL-Carlos Janjachi 26

    C [email protected]

    4. C BD

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    14/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 27

    4.1. B D .E eea de aba e USOCIAL cee a aba de ea de ea

    a cee.

    C BD

    Programacin PL/SQL-Carlos Janjachi 28

    ABA CEE

    ABA FEA

    C BD

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    15/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 29

    ABA EF

    ABA CEEF

    C BD

    Programacin PL/SQL-Carlos Janjachi 30

    ABA FEEF

    C BD

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    16/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 31

    ABA EGCEFE

    C BD

    Programacin PL/SQL-Carlos Janjachi 32

    C [email protected]

    5. E C

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    17/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 33

    5.1 EEE /.Ua cc de eade ead.

    A. Aa a, aabe ee a a aabe. Se da e a ecc de decaac e de de be dae e e

    de eecc.

    Ee:_ec := 1200;

    Ee:BEGIN_ := 'CREATE TABLE a(d NUMBER PRIMARY KEY, _ae

    VARCHAR2(50), a_ae VARCHAR2(50))';EXECUTE IMMEDIATE(_);

    END;

    E C

    Programacin PL/SQL-Carlos Janjachi 34

    C. Pee a ccaeac de cadea, ae eee.

    Ee:BEGIN_ := 'CREATE TABLE a(' 'd NUMBER PRIMARY KEY, '

    '_ae VARCHAR2(50), ' 'a_ae VARCHAR2(50))';EXECUTE IMMEDIATE (_);END;

    E C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    18/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 35

    5.2. ECA DE C.

    C.Pcea ce de cd / de aced a ce de eaac

    FEEE La cdc e eaa c TRUE, FALSE, NULL. S e edadea ece e eaa a acc 1. S e aa ece e eaa a acc 2.

    IF cdTHEN ac1;ELSE ac2END IF;

    E C

    Programacin PL/SQL-Carlos Janjachi 36

    FEEF S a de a cdce e edadea e e e ae c a

    bad.IF cdTHEN acELSIF cd THENac [ELSEac] END IF;

    CAE Eaac cdca.

    CASE eeWHEN e1 THEN ac;

    WHEN e2 THEN ac; ...ELSE ac;END CASE;

    E C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    19/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 37

    B.

    Pee a eecc cca (eec) de cd /.LOOP

    ac;EXIT [WHEN cd]

    END LOOP; F

    Pee e de eecce de cd /.FOR ce IN _be .. _beLOOPac;END LOOP;

    E Pee e de eecce aa e a cdc ea edadea.

    WHILE cd

    LOOPac;END LOOP;

    E C

    Programacin PL/SQL-Carlos Janjachi 38

    . G

    Pee aa aca c de cd / e e be. N ede eeeca a a eea e be adad. N ede eeeca dede ea de be aca ade, ac

    a ee.

    BEGINGOTO abe_ae;.. .. .. ..>

    END;

    E C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    20/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 39

    Carlos [email protected]

    6. Stored Function

    / 11

    Programacin PL/SQL-Carlos Janjachi 40

    6.1. PL/SQL Function La ce baa / e e aacea e a bae de da. Cee ecce de decaac, eecc ae de ecece. Maea ae de eada ada dae aada, eba a

    deeca de cede, a aada a a c e ace c aede a ee (e. a cdc).

    6.2. Ciclo de una Funcin Se cea c CREATE OR REPLACE FUNCTION. E baa / e ca. E cd ee e aacea e a bae de da. E cd cad e aacea e a bae de da. E baa cad ede e eecad dede be /.

    Dae a eecc e ede aa ae a a c. E c aa a a c, eeccaee a ea ea. A aa a c c a ecec, e c ea a be e

    a c.

    Stored Function

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    21/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 41

    6.3. Creacin de Funciones AlmacenadasLa eca de cede aacead e:

    CREATE OR REPLACE FUNCTION c_ae [aaee_]RETURN aaeeAS

    /* Decaae ec ee */BEGIN

    /* Eecabe ec ee */RETURN aaee_ae_

    EXCEPTION/* Ece ec ee */RETURN aaee_ae_

    END;

    6.4. Eliminacin de Funciones AlmacenadAs.DROP FUNCTION c_ae ;

    Stored Function

    Programacin PL/SQL-Carlos Janjachi 42

    6.5. Parmetros.L ae ae ede e:

    IN E a de ae e aad a a c. E a c, e ae aca c a cae de

    eca. OUT

    Ea c e e RETURN. Cad e cede aa, ea e ced de

    ae de ada.

    Stored Function

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    22/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 43

    Ej. Creacin de Funcin

    Stored Function

    Programacin PL/SQL-Carlos Janjachi 44

    Ej. Ejecucin de Funcin.

    Stored Function

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    23/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 45

    6.6. Otras caractersticas. %TYPE.

    Sa %TYPE e a decaac.

    Excepciones. E a ecc de eecc, e ee ace de ae de a

    ecece (ededa deda e a). S a c ca a ecec ea e aa a be e a

    a.

    Sin parmetros. S a c ee ae, a aada ab e debe eaa

    aa ae.

    Parmetro por Posicin P deec, a aada a de ae a ae e ace

    c, e e a a e ae, ec.

    Stored Function

    Programacin PL/SQL-Carlos Janjachi 46

    Parmetro por Defecto Pee aa ae deec a ae. S e aa a a ae e a e a ead. S e aa a a ae e a e a deec.

    aaee_ae [de] aaee_e := DEFAULT a_ae

    (*) de: IN, OUT, IN OUT

    Stored Function

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    24/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 47

    C [email protected]

    7.

    / 11

    Programacin PL/SQL-Carlos Janjachi 48

    7.1. / S baa (cede) de / e e aacea e a bae de

    da. Cee ecce de decaac, eecc ae de ecece.

    7.2. C A. Se cea c CREATE OR REPLACE PROCEDURE. E baa e ca. E cd ee e aacea e a bae de da. E cd cad e aacea e a bae de da. E baa cad ede e eecad dede be /. Dae a eecc e ede aa ae a cede.

    E c aa a cede, eeccaee a ea ea. A aa e cede, e c ea a be e e c.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    25/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 49

    7.3. C ALa eca de cede aacead e:

    CREATE OR REPLACE PROCEDURE cede_ae [aaee_]AS

    /* Decaae ec ee */BEGIN

    /* Eecabe ec ee */EXCEPTION

    /* Ece ec ee */END [ cede_ae];

    7.4. E A.DROP PROCEDURE cede_ae;

    Programacin PL/SQL-Carlos Janjachi 50

    7.5. E A.

    BEGINcede_ae(a1,a2, .. );

    END;

    7.6. .L ae ae ede e de e IN, OUT, IN OUT: IN

    E a de ae e aad a cede. E e cede, e ae aca c a cae de

    eca.

    OUT Cae a aad a cede e ad. E e cede e e de eecc, e ae aca c

    a aabe caada a. Pede e eda aae a. Cad e cede aa, e ced de ae de ada e

    e a aad.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    26/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 51

    IN OUT E a de ae e aad a cede. E e cede, e ae aca c aabe caada

    a, ede e eda aae a. Cad e cede ea, e ced de ae (e

    a aad) e ead.

    Programacin PL/SQL-Carlos Janjachi 52

    7.7. . %E.

    E a decaac de ae ae a %TYPE. E.

    E a ecc de eecc, e ee ace de (aa) aecece a ededa deda e a.

    S e cede ca a ecec ea e aa a bee a a cede.

    . S e cede ee ae, a aada ab e debe

    eaa aa ae.

    P deec, a aada a de ae a ae e ace c, e e a a e ae, ec. D

    Pee aa ae deec a ae. S e aa a a ae e a e a aad. S e aa a a ae e a e a deec.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    27/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 53

    Carlos [email protected]

    8. Packages

    / 11

    Programacin PL/SQL-Carlos Janjachi 54

    8.1. Packages. Es un PL/SQL que permite la construccin de objetos relacionados que

    comparten conceptos o caractersticas similares y se almacenen juntos. Un paquete tiene dos partes separadas: la especificacin y el cuerpo.

    Cada uno se almacena por separado en el diccionario de datos. Adems de permitir el agrupamiento de objetos, los paquetes son tiles

    porque son menos restrictivos que los subprogramas almacenados en loque respecta a las dependencias.

    La parte de especificacin en un paquete es esencialmente una seccindeclarativa. Cualquier objeto, variables, etc. que puedan ir en la partedeclarativa de un bloque pl/sql puede ir tambin en la especificacin deun paquete. Esto incluye los procedimientos, funciones, cursores, tipos

    y variables. Una de las ventajas de poner estos objetos en un paquete es lacapacidad para hacer referencia a ellos desde el mismo paquete.

    Packages

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    28/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 55

    8.2. HEADER - Especificacin del Paquete. La especificacin del paquete, tambin es llamado HEADER o cabecera

    contiene informacin del contenido del paquete. No contiene el cdigo pl/sql. La especificacin de un paquete puede contener procedimientos,

    funciones, variables, excepciones o otros tipos de datos, tal como en unbloque annimo.

    Los elementos pueden ser declarados en cualquier orden sin embargodeben estar declarados antes de ser referenciados.

    8.3. BODY Cuerpo del Paquete. Contiene el cdigo de lo declarado en la cabecera. Todas las declaraciones puestas en la cabecera deben estar

    desarrolladas en el BODY, y sobretodo en el cuerpo la especificacin delprocedimiento o funcin debe ser la misma que en la cabecera.

    Tambin puede contener otras declaraciones adicionales: variables,cursores, types o subprogramas.

    Packages

    Programacin PL/SQL-Carlos Janjachi 56

    8.4. CREACION DE PAQUETE PL/SQL Se realiza con el comando:

    CREATE [OR REPLACE] PACKAGE [schema.]package_nameAS package

    CREATE [OR REPLACE] PACKAGE BODY [schema.]package_nameAS plsql_package_body

    8.5. ELIMINACION DE PAQUETE PL/SQL. Se realiza con el comando:

    DROP PACKAGE name_pkg;

    Packages

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    29/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 57

    Ej. Creacin de un paquete.

    ..continua.

    Packages

    Programacin PL/SQL-Carlos Janjachi 58

    ..continua.

    Packages

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    30/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 59

    ..continua.

    Packages

    Programacin PL/SQL-Carlos Janjachi 60

    Ej. Ejecucin del paquete.

    Packages

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    31/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 61

    Ej. Error de compilacin por diferencia entre HEADER y BODY.

    Packages

    Programacin PL/SQL-Carlos Janjachi 62

    8.6. Especificacin de Variables Globales. El BODY de un paquete es opcional. Si la cabecera del paquete contiene nicamente la declaracin de

    variables, cursores, types y no contiene procedimientos ni funcionesentonces no se requiere el BODY.

    En la practica, esta forma de codificar se utiliza para declarar variablesglobales en las aplicaciones o desarrollos.

    Packages

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    32/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 63

    8.7. Object Types y Sobrecarga. Se puede sobrecargar los subprogramas de un paquete con diferentes

    tipos de objetos definidos por el usuario.

    Ej. Creacin de tipos definidos por usuario.

    Packages

    Programacin PL/SQL-Carlos Janjachi 64

    Ej. Sobrecarga del paquete.

    Packages

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    33/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 65

    C [email protected]

    9. C

    / 11

    Programacin PL/SQL-Carlos Janjachi 66

    9.1. C U c e bc de da ded a ca. Se aee e ea, dede e e abe ee aa e e cea . U c aa a eac de ea e e ea de Pce Gba

    (PGA), eeccaee e e Ue Gba Aea (UGA) e cee a ede a, a e aacea ee:

    Fa () deea e. Ne de a ceada e e. U e a aed e e e Saed P Aea (Saed SQL P).

    La a e ea ce e $e_c.

    9.2. C C

    Se decaa e c. A ab e c, e a a aea de da e caa a

    ea e dee e e e e de e. S e e aea, acaa ea e de a ee, e

    ea e c eea e cab.OPEN===>PARSE===>BIND===>EXECUTE===>FETCH===>CLOSE

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    34/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 67

    E. Da e ea e c (Qe cede?).

    ..ca

    C

    Programacin PL/SQL-Carlos Janjachi 68

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    35/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 69

    9.3. DE C E Oace ee 4 de ce:

    Ce Ec Ce Ic Ce Vaabe Ce Sbe

    (*) SYS_REFCURSOR: e de c e db eded, eeca a decaac de a aabe de c de ee d:

    _c SYS_REFCURSOR;

    C

    Programacin PL/SQL-Carlos Janjachi 70

    9.4. C EC Se dca e c e a ecc DECLARATION e a eca c:

    Uad a decaac CURSOR Ade be. Se eecca a eeca SELECT aa de c.

    CURSOR c_ae [aaee_][RETURN e_e]IS e[FOR UPDATE [OF (c_)][NOWAIT]];

    aaee_: ae aa e a eecc de e.e_e:e de da e e deec_: a de ca

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    36/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 71

    9.5. C F DAE Cad e abe e c e bea e ad e e. L e e ea c eca (READ ONLY) aa a ee. S e dca NOWAIT e ab e c e a bee be

    ec de e.

    C Pee aa ae a e dae eeccE. C a de ae.

    CURSOR a_c1IS SELECT d FROM a WHERE d > 50;

    E. C c a de ae.CURSOR a_c1 (_d IN NUMBER)IS SELECT d FROM a WHERE d > _d;

    C

    Programacin PL/SQL-Carlos Janjachi 72

    9.6. C E Se aa eaa ab c aa e /. Cad e eeca e e e aead. L ae de a aabe (bd) aad a e. Se caa e dee a PGA. La a de cad e:

    OPEN c_ae [(aaee_ae)];

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    37/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 73

    9.7. C FEC Se aa ecb e dede e ce aea e aabe aa . E cad aca be e e aca (ac). Ca c ee e a a e. La a de cad e:

    FETCH c_ae INTO aabe_ae() PL/SQL_ecd;

    c_ae: be de caabe_ae: a a aabe eaada ca, a

    aabe de d e aca ead.

    E. FETCH a_c INTO __ae, _a_ae;

    C

    Programacin PL/SQL-Carlos Janjachi 74

    E. Paa e /.DECLARE

    _a a%ROWTYPE;BEGIN...FETCH a_c INTO _a;...

    Paa eeeca a a de a ca d e e e a_c e ace:_a.d

    9.8. C CE Cea c abe de a eca. La a de cad e:

    CLOSE c_ae;

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    38/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 75

    9.9. C Pee aea e c, cada e ac e ecbd e

    aa . Se aaa e a a e. La a de cad e:

    LOOP ... END LOOP;E. U de .

    C

    Programacin PL/SQL-Carlos Janjachi 76

    9.10. A C L ce e ace aea 6 ab:

    %BULK_EXCEPTIONS %BULK_ROWCOUNT %FOUND %ISOPEN %NOTFOUND %ROWCOUNT

    (*) Ve e 09_EcAbe.

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    39/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 77

    9.11. C C. S abe cead ace. E a acca, cada eeca DML de SQL e ada c c e e

    PGA (ce aea). N aea OPEN, FETCH, CLOSE e ee e de

    %BULK_EXCEPTIONS, %BULK_ROWCOUNT, %FOUND, %ISOPEN, %NOTFOUND,%ROWCOUNT

    C

    Programacin PL/SQL-Carlos Janjachi 78

    E. U de c c

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    40/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 79

    9.12. C AABE. Se decaa e c c e. E e de eecc e aa e a c.

    C

    Programacin PL/SQL-Carlos Janjachi 80

    9.13. C BE. Ce e a c c ae de e e dee c. Ve ee e 09_CSbe.

    C

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    41/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 81

    9.14. C A E e de a ce abe e eecca e aae

    OPEN_CURSORS e e .a.

    C

    Programacin PL/SQL-Carlos Janjachi 82

    C [email protected]

    10. E

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    42/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 83

    10.1. B /La eca de be / cee a ee ecce: DECLARATION BEGIN, END EXCEPTION

    Uad aa aaa ee e ce dae a eecc.

    E

    Programacin PL/SQL-Carlos Janjachi 84

    10.2. EEe d e aa aea a ecece: Cac

    Read e cad. Eecc

    L ee aad aead de ecece.

    E

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    43/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 85

    10.3. CDE E

    CDERea e e de e de a ecec.ERea e eae de e de a ecec.

    E

    Programacin PL/SQL-Carlos Janjachi 86

    10.4. E La a de ecece e ecea e

    ..\dc\11.1.0\db_1\RDBMS\ADMIN\decA ce de ecece ededa :

    E

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    44/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 87

    10.5. E D S ecece deda deaad e a ecc DECLARE e

    dcad a ecec e aeaa.Se ace de d a: Uad PRAGMA EXCEPTION_INIT aa aca a ecec c e

    de e.

    E

    Programacin PL/SQL-Carlos Janjachi 88

    10.5. E D Decaad a ecec, aad a ecec aeda e a ecc

    EXCEPTION.

    E

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    45/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 89

    10.6. E U be e aa aea a ecec. Cad e be e e ead e c aa a a eeca de

    be ee.

    E

    Programacin PL/SQL-Carlos Janjachi 90

    10.6. E U be e aa a ecec A e a ca. E be e aa e e a be ee dde e ca a

    ecec.

    E

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    46/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 91

    10.6. E U be e aa a ecec A e a ca. E be e aa e e a be ee E be ee ca a ecec a aada aca e .

    E

    Programacin PL/SQL-Carlos Janjachi 92

    E Had PL/SQL E

    ://dad.ace.c/dc/cd/B10501_01/ade.920/a96624/07_e.

    E

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    47/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 93

    C

    [email protected]

    11. 11 /

    / 11

    Programacin PL/SQL-Carlos Janjachi 94

    C E a ea cadad e Oace 11. Pee aa a a ee eac e .

    11 /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    48/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 95

    E a ea cadad e Oace 11. P ede e ad c eac de aeac aa eea ee

    de dbe eada. E a de ecb cd ccad c a a cadad de

    ce de decdcac, e ede a aa cea ebe cae aba eaca.Sa:

    _c: ca a e aeada

    __c: ca a e aada eada__c: aa a ca e __c

    11 /

    Programacin PL/SQL-Carlos Janjachi 96

    ee: Cdea da de cee, cd de ead ceca deca.

    ee: Ree de ececa de ceca de ca ead.

    11 /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    49/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 97

    ee: U de , ee de ceca de ca ead.

    11 /

    Programacin PL/SQL-Carlos Janjachi 98

    C .

    E a ea cadad e Oace 11. S dae a eecc de ca ea ce be, ace

    aacea e a cace e ead de be aa ea ea. L da aacead c a eca a abe e a e de BD

    ea eca e be.

    11 /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    50/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 99

    C

    Cad e a e e debe de ee e cea : C

    Cea e ecea, ece de e e a aba edecaa eeace cea e a bae de da dcad eaee de a acac.

    Recda e de ca e a aba c:NOT NULL, UNIQUEPRIMARY KEYFOREIGN KEYCHECKDELETE CASCADEDELETE SET NULL

    11 /

    Programacin PL/SQL-Carlos Janjachi 100

    C

    11 /

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    51/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 101

    .

    http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html

    Scalar Subquery

    http://www.oracle.com/technetwork/issue-archive/2011/11-jan/o11asktom-195084.html

    11 /

    Programacin PL/SQL-Carlos Janjachi 102

    C [email protected]

    12. D

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    52/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 103

    12.1. DAC. Pee eeca eeca cda e e de eecc. A deeca de SQL ec, SQL dc cce a aba,

    ca eeca aa e e de eecc. E SQL ec, ace a cce de a aba, ca

    eeca de be / a e de ca. E SQL ec, a ca e ecce e, e e e

    eee aa e be /. U SQL ec eea eadca, e e ede a.

    L de SQL dac : Se ede c eeca DDL e a eecc de be /. Se ede c e cd de aced a a ecedade de a

    de dea.

    D

    Programacin PL/SQL-Carlos Janjachi 104

    12.2. EECE EDAE Pee eeca eeca de a dca e be /. La a e:

    EXECUTE IMMEDIATE aee;

    E. Sc de dc.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    53/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 105

    E. Sc de dc (cac).

    D

    Programacin PL/SQL-Carlos Janjachi 106

    E. Sc aa deca ca be decad.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    54/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 107

    C [email protected]

    13. D

    / 11

    Programacin PL/SQL-Carlos Janjachi 108

    13.1. D F. Cad a c e ca, e ea e e dcca de da a

    deedeca a d be de Oace a e ace eeeca. Ua c ede ee ad a eac DDL aea a eca

    de be eeecad.E. Ceac de a c e deede de be.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    55/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 109

    E. Mdcac de be eeecad.

    E. Vecac de ead de a c.

    D

    Programacin PL/SQL-Carlos Janjachi 110

    C A.S a c e ada, e / ee ecaa aacaee e

    a a aada.

    E. Recac aca.

    E. Vecac de ead de a c.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    56/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 111

    C .

    S a c e ada, e ede eca de a aa c ecad COMPILE.

    ALTER FUNCTION c_ae COMPILE;

    E. Recac aa.

    D

    Programacin PL/SQL-Carlos Janjachi 112

    13.2. D A. Cad cede e ca, e ea e e dcca de da a

    deedeca a d be de Oace a e ace eeeca. U cede ede ee ad a eac DDL aea a

    eca de be eeecad.

    E. Ceac de cede e deede de be.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    57/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 113

    E. Mdcac de be eeecad.

    E. Vecac de ead de a c.

    D

    Programacin PL/SQL-Carlos Janjachi 114

    C A.S a c e ada, e / ee ecaa aacaee e

    a a aada.

    E. Recac aca.

    E. Vecac de ead de a c.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    58/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 115

    C .

    S cede e ad, e ede eca de a aa c ecad COMPILE.

    ALTER PROCEDURE cede_ae COMPILE;

    E. Recac aa.

    D

    Programacin PL/SQL-Carlos Janjachi 116

    13.3. D . Cad cede aacead c e ca, d be

    de Oace a e ace eeeca e ea e e dcca de da. S aee ee ee de cac e aca c da e e

    dcca de da. U aee ab ede ee ad a eac DDL e eaa

    e de be eeecad. S e ace DDL (e. d) be be eeecad ece e

    BODY e ace ada. S e aea a decaac de be a HEADER abe e

    ada e BODY.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    59/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 117

    D .

    E. Ceac de aba eeecada.

    E. Ceac de aee deedee de a aba.

    E. Ceac de cede deedee de aee.

    D

    Programacin PL/SQL-Carlos Janjachi 118

    E. Vecac de ead de be.

    E. Mdcac de BODY de aee. ?

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    60/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 119

    E. Mdcac de a aba. ?.

    E. Vecac de ead de be.

    D

    Programacin PL/SQL-Carlos Janjachi 120

    C A.S a c e ada, e / ee ecaa acaee e

    a a aada.

    E. Recac aca.

    E. Vecac de ead de a c.

    D

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    61/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 121

    C .

    S cede e ad, e ede eca de a aa c ecad COMPILE.

    ALTER PACAKGE acae_ae COMPILE;ALTER PACKAGE acae_ae COMPILE SPECIFICATION;ALTER PACKAGE acae_ae COMPILE BODY;

    D

    Programacin PL/SQL-Carlos Janjachi 122

    C [email protected]

    14.

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    62/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 123

    14.1. AGE BEC Se cce c LOB. Ee d de ae bec:

    Iea LOBAacead e a bae de da c BLOB, CLOB NCLOB.

    Eea LOBS aacead e ac de ea ea BFILE.

    14.2. DBB E a API / de ace aa a eca eca de de da LOB. Paa abaa c LOB e eee LOB ca, e e e a a

    aca c de LOB (a e bae de da c e ac).(*) L cede ce de DBMS_LOB e deaa e e ae 1.

    14.3. AED. Aea b e a b de. Tabaa c BLOB, CLOB NCLOB.

    N caa CLOB a BLOB.

    Programacin PL/SQL-Carlos Janjachi 124

    E. U de aed.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    63/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 125

    Programacin PL/SQL-Carlos Janjachi 126

    14.4. ADCBFFE/ADBBFFE Pee caa ac a a ca CLOB, BLOB.E. Caa de ac d a a bae de da.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    64/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 127

    Programacin PL/SQL-Carlos Janjachi 128

    Vecac de a caa de ac.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    65/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 129

    C [email protected]

    15.

    / 11

    Programacin PL/SQL-Carlos Janjachi 130

    15.1. DAABAE GGE.Aa caaceca de e : S be / bad. S be deedee a ae de be aee /. Cee a ecce DECLARATIVE, EXECUTION, EXCEPTION. U e acea aae de eada ada.

    15.1. CC DE GGE. Se cea c e cad CREATE [OR REPLACE] TRIGGER. Se aacea e a bae de da c be deedee. U e e aad de a ca cad ce ce ee

    c: Seeca DML: e, deee, dae. Seeca DDL: eace be a aba a. Ee de ea: a. d Ee de a: ,

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    66/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 131

    15.3. DE GGE. Aea a edad de a bae de da, ee a ceac de

    ecce cea. Pee e e de a ada de cab de a aba. Pee aa acce e bae de da ae cab e a aba.

    Programacin PL/SQL-Carlos Janjachi 132

    15.4. CEAC DE GGE. Se eaa c a a:

    CREATE [OR REPLACE] TRIGGER e_aeBEFORE AFTER INSTEAD OF e_ee[eeec_cae][WHEN e_cd][FOR EACH ROW]e_bd;

    e_ae: be de e

    e_ee: ee e daa e e(ede c a aba a)eeec_cae:dca e a eaae_cd: cdc a eaa, e edade e eeca e

    e_bd de e.(*) E e_bd debe ecede 32K.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    67/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 133

    15.5. GGE D. Se daa ae eeca DML: e, dae, deee. Aca be da aa de a a de a aba. La ce de aae de e DML :

    C Saee INSERT, UPDATE, DELETET BEFORE AFTERLee ROW Saee

    E D .Cad e daa e e cea e e ee de: Eeca e BEFORE aee ee. P cada a:

    Eeca e BEFORE ROW ee.

    Eeca e aee. Eeca e AFTER ROW ee.

    Eeca e AFTER aee ee.

    Programacin PL/SQL-Carlos Janjachi 134

    15.6. D E . Peee a e de a (). Pee accede dede e e a a daa e acaee e ea

    cead. E cad cdea c ed e de a a:

    e_abe%ROWTYPE

    L de d e:

    : :INSERT ded, da a a ae e ea ead

    UPDATE ae de a a ae de e aeacaaDELETE ae de a a ae de ded, da a a

    ea

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    68/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 135

    D E .

    E. Iec de e a aba c ID ececa.

    E. Ceac de e e eea e ID ececa.

    E. Iec de e ce.

    Programacin PL/SQL-Carlos Janjachi 136

    15.7. C E . S eee a e de a (). Se eeca e BODY de e cad a a ce a cdc.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    69/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 137

    15.8. EAD F GGE . Se dee aa a a. Se daa ae eeca DML. Reeaa e cd de a eeca DML.

    C La a de cad e:

    CREATE [OR REPLACE] TRIGGER [cea.]e_aeBEFORE AFTERdd_ee_ daabae_ee_ON DATABASE [cea.]SCHEMA[e_cae]e_bd;

    dd_ee_: a de eeca DDL eaad OR

    daabae_ee_: a de ee de BD eaad OR

    Programacin PL/SQL-Carlos Janjachi 138

    .E. Ceac de a a.

    E. Cbac e a a e acaabe.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    70/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 139

    .

    E. Ceac de e ead .

    E. Cbac e a a e acaabe.

    Programacin PL/SQL-Carlos Janjachi 140

    15.9. E GGE. Se daa ae eeca DDL cad de bae de da.

    DDL: CREATE, ALTER, DROP Daabae: a, d

    C La a de cad e:

    CREATE [OR REPLACE] TRIGGER [cea.]e_aeBEFORE AFTERdd_ee_ daabae_ee_ON DATABASE [cea.]SCHEMA

    [e_cae]e_bd;

    dd_ee_: a de eeca DDL eaad ORdaabae_ee_: a de ee de BD eaad OR

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    71/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 141

    .

    E. Ceac de a aba de Ada de cee.

    E. Pcede aa ada de cee.

    E. Te aa ada de cee.

    Programacin PL/SQL-Carlos Janjachi 142

    15.10. EGGED D . Cad e e cead e aacea e e dcca de da. La a e_e ea ac be e e: be, e

    bd, a ca e, a aba a, e de e, ead ec.

    E E cad ee a a:

    DROP TRIGGER eae;D Paa e e aca:

    ALTER TRIGGER eae DISABLE ENABLE; L e de a aba:

    ALTER TABLE ae_abe DISABLE ENABLE ALL TRIGGER ;

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    72/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 143

    E U Te 11

    ://dad.ace.c/dc/cd/B28359_01/ade.111/b28370/e.

    Programacin PL/SQL-Carlos Janjachi 144

    C [email protected]

    16.

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    73/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 145

    16.1. .

    E a eca de da de a bae de da aea eea. La bae de daaea ede e a aba aacca, ea ea aba e acaacaeee a a aeaada e acaa de a aa.

    D.Se ede a a aeaada aa ace ee eee

    aae cac de da ee.

    Programacin PL/SQL-Carlos Janjachi 146

    .

    a ac ea a a aeaada e e cca c cada de e edae eace de bae de da, a bae de da e ecca ee edae db de bae de da.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    74/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 147

    16.2. B .

    Aa eaa de : Redc a caa de ed.

    Ccead da de deee ede e ed debae de da.

    La a aeaada e acaa a a de ce bac eed cad.

    Mea a ecdad de a ca. Cead e e ed de a acac eca de a bae de da

    eea e aaee cada. Cea a eaada aa a acace ae.

    Cead e e ed de a bae de da bc de daeaad aa cada acac a.

    Pee e de da e. La a aeaada eee a ce de ed dedcada, a

    acaac de da dede a ee e ede ace de aaa e e e e e eea.

    Programacin PL/SQL-Carlos Janjachi 148

    16.3. C .La a aa a ceac de a a aeaada e:

    CREATE MATERIALIZED VIEW be_a_[TABLESPACE be_][PARALELL (DEGREE )][BUILD INMEDIATEDEFERRED][REFRESH ON COMMIT ON DEMAND [START WITH eca_c] NEXT

    eca_ea COMPLETE FAST FORCE ][ENABLEDISABLE QUERY REWRITE]AS SELECT ... FROM ... WHERE ...

    deec:BUILD : INMEDIATEREFRESH : FORCEENABLE: DISABLE

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    75/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 149

    16.4. C . BUILD :

    INMEDIATE, a aba acada c a a e eba a e de aeecc de cad CREATE.

    DEFERRED, e cad CREATE cea a eca a daa e ebae a ea acaac de a a.

    REFRESH: COMPLETE, a aba acada a a a e ba ceaee e

    ee a ea d e dee e SQL de a a. FAST, a a e acaa c cab e da de a aba

    ee eaad dede a a acaac. Se debe cea eaee de cab de da a aba

    ee c CREATE MATERIALIZED VIEW LOG. N a a ce SUM, AVG, MAX, MIN COUNT.

    FORCE, e be a a e acaa c e d FAST a

    COMPLETE.

    Programacin PL/SQL-Carlos Janjachi 150

    16.5. C . ENABLEDISABLE QUERY REWRITE

    Deea e ad de Oace (baad e c) ede eecb a eeca SQL de a a.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    76/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 151

    16.6. A . Se eaa ad e aee PL/SQL eda DBMS_MVIEW

    Ua a eecca.DBMS_MVIEW.REFRESH (' be_a_)

    Tda a a e ce a aba a aeaada dcada.DBMS_MVIEW.REFRESH_DEPENDENT ('_ab1, _ab2, ...')

    Tda a a aeaada deee ee () e e e ede e acaad.DBMS_MVIEW.REFRESH_ALL_MVIEWS ()

    Se eee e ae de a bae de da JOB_QUEUE_PROCESSES JOB_QUEUE_INTERVAL e cad aa e a eecc de becad.

    Programacin PL/SQL-Carlos Janjachi 152

    16.7. A A. ON COMMIT

    La a e acaa cada e e e eeca COMMIT be aa dea aba ee de a a.

    Paad. Se aa e e deead. START WITH [a de e eec e a daee]

    NEXT[ea de e ee acaace e a daee ]

    Se eee ca e ae JOB_QUEUE_PROCESSES.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    77/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 153

    E. Ua a aeaada de a aba e e acaa da a a eaa

    de aea ceea.

    CREATE MATERIALIZED VIEW LOG ON aba_eWITH PRIMARY KEYINCLUDING NEW VALUES;

    CREATE MATERIALIZED VIEW be_REFRESH FAST NEXT SYSDATE + 7AS SELECT ca1, ca2, ca8FROM aba_eWHERE ca2 > 5000;

    Programacin PL/SQL-Carlos Janjachi 154

    E. Acaac aada de a Va Maeaada.

    CREATE MATERIALIZED VIEW ae_REFRESH START WITH ROUND(SYSDATE + 1) + 9/24NEXT NEXT_DAY(TRUNC(SYSDATE), 'TUESDAY') + 16/24AS SELECT ...;

    E. Acaac Maa de a Va Maeaada.

    bedb_e.ee(ae_');

    ed;

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    78/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 155

    E Maeaed Ve Cce ad Acece

    ://dad.ace.c/dc/cd/B10500_01/ee.920/a96567/ee.

    Programacin PL/SQL-Carlos Janjachi 156

    C [email protected]

    A1. A BD

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    79/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 157

    E ea e de bae de da.

    Ce a Iaca a Bae de Da Oace.

    Gea e acce a a bae de da (ee).Cea ea ce e bacd.

    DUa cecc de da ead.Cea e de ac:

    C eDaa eOe Red L e

    A BD

    Programacin PL/SQL-Carlos Janjachi 158

    D C

    A BD

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    80/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 159

    Oace eea e de ce dae a ce.

    Se ca cad a ace ee a a bae de da.

    Se ceca c a aca de ace.Se ca cad e a eabece a e.

    B Se ca cad e ca a aca de ace.

    A BD

    Programacin PL/SQL-Carlos Janjachi 160

    A C B D

    A BD

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    81/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 161

    A B D

    A BD

    Programacin PL/SQL-Carlos Janjachi 162

    C [email protected]

    A2.

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    82/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 163

    E a dad aa caa da a a bae de da ace.

    A ed e ad aa aa da de ec ee a a baede da.

    Programacin PL/SQL-Carlos Janjachi 164

    C F Idca dde eca a daa a caa. E a de a daa. O deae de cac.

    Ge de ea. Recd eec. Iec de a caa.

    C e aa a daa.

    F SQL Lade ee a daa dede d a ac dcad e e c e. U daa e ede ee de e a:

    Fed ecd Vaabe ecd Sea ecd

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    83/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 165

    C F Idca dde eca a daa a caa. E a de a daa. O deae de cac.

    Ge de ea. Recd eec. Iec de a caa.

    C e aa a daa.

    F SQL Lade ee a daa dede d a ac dcad e e c e. U daa e ede ee de e a:

    Fed ecd Vaabe ecd Sea ecd

    Programacin PL/SQL-Carlos Janjachi 166

    C [email protected]

    A3.

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    84/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 167

    A de c : D

    Daa Maa Laae. Seeca aa e ae de da de eea a bae de

    da. Se eeca e be /. Ice a eeca:

    , , , , , eac e (e dae). , aada a baa / aa. a, ea e a de acce a a daa. , ca a cceca be a aba.

    Programacin PL/SQL-Carlos Janjachi 168

    DD

    Daa De Laae. Seeca aa de a eca de eea bae de da. N e eeca e be /. ? Ice cad:

    , cea be e a bae de da. , aea be e a bae de da. , ea be e a bae de da. , eee d e de a aba ced e

    eac aad aa e. , aea cea a dcca.

    , eba be. Se ace c c ae de de cad. S e aa DDL be be (e. aba) e be e e

    deedee (e. cede) ede acee ad.

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    85/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 169

    INSERT INTO abe_ae [(c_)]

    VALUES eec_aee (ae_);

    Programacin PL/SQL-Carlos Janjachi 170

    UPDATE abe_aeSET c_ae = eec_aee ae [, c_ae =

    ae][WHERE ee_cae WHERE CURRENT OF c];

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    86/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 171

    Programacin PL/SQL-Carlos Janjachi 172

    DDELETE FROM abe_ae[WHERE ee_cae WHERE CURRENT OF c]

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    87/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 173

    DC

    Daa C Laae Uad aa ca e acce a a bae de da. Ice cad:

    , ccede e de acce a a bae de da. , ea e de acce a a bae de da.

    C Taac C Laae Uad aa ca cab e a aacc. Ice cad:

    , , dca e a aacc aca e ca e ede

    ace bac. , caba a ce e a aacc (READ ONLY,

    READ WRITE, ISOLATION LEVEL, ..).

    Programacin PL/SQL-Carlos Janjachi 174

    .

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    88/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 175

    E SET TRANSACTION

    ://dad.ace.c/dc/cd/B19306_01/ade.102/b14261/eaac_aee.

    SAVEPOINT://dad.ace.c/dc/cd/B19306_01/ade.102/b14261/ea.#BABGAAIG

    / B

    Programacin PL/SQL-Carlos Janjachi 176

    C [email protected]

    A4.

    / 11

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    89/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 177

    Ce e aaa a eecc de aea ce eea e abae de da.

    La aea ce acce c: ececc de eadca cad de da dede da aba a eecc de be a / eecc de cede aacead e de ce, ec.

    C B U b e aa c e aee DBMS_JOB, a a de 10 c e aee

    DBMS_SCHEDULER (c cede e eee eea ae decaac).

    L b aad ce ea a a ca (ee).

    Programacin PL/SQL-Carlos Janjachi 178

    La cea e ada e cede debe ee e SCHEDULER_ADMIN.

    C La a aa cea b a a de cede c cede e:

    DBMS_SCHEDULER.CREATE_JOB (b_ae IN VARCHAR2 be b,b_e IN VARCHAR2 PLSQL_BLOCK / STORED_PROCEDUREb_ac IN VARCHAR2, cd /be cedebe__ae IN PLS_INTEGER, aae de b, 0255, dea 0a_dae IN TIMESTAMP, e c (a aa deec)eea_ea IN VARCHAR2, ececa de eec

    ed_dae IN TIMESTAMP, e (a aa deec)b_ca IN VARCHAR2, dea 'DEFAULT_JOB_CLASS'eabed IN BOOLEAN dea FALSEa_d IN BOOLEAN, d a aa aba, dea TRUEce IN VARCHAR2, dea NULL

    );

  • 7/24/2019 Curso de Oracle Del Colegio de Ingenieros

    90/90

    COLEGIO DE INGENIEROS DEL

    PERU

    Programacin PL/SQL-Carlos Janjachi 179

    Ee.

    BEGINDBMS_SCHEDULER.CREATE_JOB (b_ae => 'STRESS_BD',b_e => 'PLSQL_BLOCK',b_ac => 'BEGIN ._ce; END;',a_dae => 05MAR11 04.35.00 PM AMERICA/LIMA',eea_ea => 'FREQ=MINUTELY; INTERVAL=1;',ed_dae => 05MAR11 05.00.00 PM AMERICA/LIMA',eabed => TRUE,ce => 'Cada ');

    END;

    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_sched.ht

    m