Curso de Oracle Del Colegio de Ingenieros
Transcript of Curso de Oracle Del Colegio de Ingenieros
-
7/24/2019 Curso de Oracle Del Colegio de Ingenieros
1/90
COLEGIO DE INGENIEROS DEL
PERU
Programacin PL/SQL-Carlos Janjachi 1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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