SlideShare una empresa de Scribd logo
1 de 17
Bases de Datos



                    Unidad


          El Lenguaje PL/SQL
          (Procedimientos y Excepciones)




             2011   Erwin Fischer          2
Subprogramas
Funciones y Procedimientos almacenados

Los subprogramas son Bloques PL/SQL nominados que
pueden tomar parámetros y ser invocados a voluntad por
el programador. PL/SQL tiene dos tipos de subprogramas,
denominados funciones y procedimientos (almacenados)

Tanto las funciones y los procedimientos admiten un
conjunto de parámetros que serán especificados por el
programa que realice la invocación, y llevan a cabo un
conjunto de acciones

Ambos pueden modificar los datos pasados como
parámetros, la diferencia entre ambos es que la función
siempre retorna un único valor, mientras que un
procedimiento no.

                      2011   Erwin Fischer                3
Create Procedure

CREATE [OR REPLACE] PROCEDURE procedure_name
      [ (parameter [,parameter]) ]

 IS | AS
     [declaration_section]
 BEGIN
     executable_section
 [EXCEPTION
     exception_section]
 END [function_name];




                 2011   Erwin Fischer          4
Subprogramas
Funciones y Procedimientos almacenados

Los parámetros tienen un nombre distintivo
y un tipo de datos, pero también pueden
especificarse como:

IN       El parámetro se utiliza únicamente como
         entrada

OUT      El parámetro se utiliza únicamente como
         valor de salida

IN OUT   El parámetro se utiliza en ambos
         sentidos.
                     2011   Erwin Fischer          5
Variables de sustitución



 • En Los bloques PL/SQL se pueden
   utilizar variables de sustitución, que
   nos pedirán datos por pantalla antes de
   ejecutar el bloque.

 • Esta variable tienen que ir antepuesta
   del & para que funcionen.



                2011   Erwin Fischer         6
Bloque que nos pide el Id de un
empleado y nos muestra su nombre



DECLARE
   Vnombre Cliente.nombre%TYPE;
BEGIN
 select nombre into Vnombre
  from Cliente
 where numCliente = '&VnumCliente’;
    DBMS_OUTPUT.PUT_LINE (Vnombre);
 END;

               2011   Erwin Fischer   7
Crear un procedimiento



 • Diseñe un procedimiento, que
   reciba como parámetro el numero
   de cliente y muestre por consola,
   el numero, el nombre y el apellido.
 • En caso que no lo encuentre que
   indique un mensaje



               2011   Erwin Fischer      8
Preparando los datos



• Para cargar la tabla Cliente, puede
  usar el script que se encuentra en
  orahelp.blogspot.com bajo la
  entrada Dream home completo

  http://orahelp.blogspot.com/2007/07/dre
  am-home-completo.html


               2011   Erwin Fischer         9
Creando la tabla Cliente
 create table CLIENTE (
   NUMCLIENTE   CHAR(4) not null,
   NOMBRE       CHAR(30),
   APELLIDO     CHAR(30),
   DIRECCION    CHAR(35),
   TELEFONO     CHAR(10),
   TIPOPREF     CHAR(25),
   MAXRENT      FLOAT,
   constraint PK_CLIENTE primary key
   (NUMCLIENTE)
 );




                2011   Erwin Fischer   10
Insertando Registros


begin
insert into cliente values('CR78','Juan','Kayser','55 High
ST,Londonn,SW14EH','0207774564','Departamento',450);
insert into cliente values('CR57','Alicia','Soto','63 Fern
Dr,. GlasgowG42 OBL','0141324183','Departamento',350);
insert into cliente values('CR72','Miguel','Torres','62
Well St, Glasgow,G42','0141943740','Casa',750);
insert into cliente values('CR63','Maria','Perez','13 Park
PI, Glasgow,G4 0QR','0141225741','Departamento',600);
end




                      2011   Erwin Fischer                   11
Procedimiento verCliente
CREATE OR REPLACE PROCEDURE verCliente (pNumCliente VARCHAR2)
IS
   vNumCliente Cliente.numCliente%TYPE;
   vNombre     Cliente.nombre%TYPE;
   vApellido   Cliente.apellido%type;
BEGIN
   select numCliente, nombre, apellido
     into vnumCliente, vNombre, vApellido
   from cliente
   where numCliente = pNumCliente;
   DBMS_OUTPUT.PUT_LINE('NumCliente : ' ||vNumCliente||' Nombre
   : '||trim(vNombre)||' Apellido : ' ||vApellido);
EXCEPTION
   WHEN NO_DATA_FOUND THEN
      DBMS_OUTPUT.PUT_LINE('No hemos encontrado al Cliente ' ||
   pNumCliente);
END;

                         2011   Erwin Fischer                     12
Llamada a un Procedimiento



 • Para invocar un
   procedimiento, basta nombrarlo
   indicando los parámetros
   requeridos:

   begin
      verCliente('CR78');
   end
              2011   Erwin Fischer   13
Para descubrir qué procedimientos y
funciones ha creado


 Utilice la siguiente consulta de SQL:

     select object_type, object_name
     from user_objects
     where object_type = 'PROCEDURE' or
      object_type = 'FUNCTION';

 Para eliminar un procedimiento/función:

     drop procedure <procedure_name>;
     drop function <function_name>;


                        2011   Erwin Fischer   14
Diseño Procedimiento

  • Diseñe un Procedimiento que
    ingrese los datos de una visita a
    una propiedad, esto es ingresar los
    datos a la tabla visita:




• Cada uno de los atributos de la tabla, deben ser
  pasados al procedimiento como parámetros, y se
  debe validar que exista el cliente y la propiedad.

                     2011   Erwin Fischer              15
Consulta



 • ¿Cómo verificamos que un cliente
   existe, en la tabla Cliente?




              2011   Erwin Fischer    16
Primero creamos función que
valida que el cliente exista
 CREATE OR REPLACE Function validaCliente (pNumCliente
    VARCHAR2)
 return boolean
 IS
    vNumCliente Cliente.numCliente%TYPE;
 BEGIN
    select numCliente into vnumCliente
    from cliente
    where numCliente = pNumCliente;
    return TRUE;
 EXCEPTION
    WHEN NO_DATA_FOUND THEN
       return FALSE;
 END;



                     2011   Erwin Fischer                17
Unidad - PL/SQL




        • Fin




            2011   Erwin Fischer   18

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Triggers
TriggersTriggers
Triggers
 
SQLite y PHP: DQL - data query language
SQLite y PHP: DQL - data query languageSQLite y PHP: DQL - data query language
SQLite y PHP: DQL - data query language
 
51191625 triggers
51191625 triggers51191625 triggers
51191625 triggers
 
minas
minas minas
minas
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Grupo1 tics-2 (2)
Grupo1 tics-2 (2)Grupo1 tics-2 (2)
Grupo1 tics-2 (2)
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladores
 
Restricciones y Ordenacion en SQL con Oracle
Restricciones y Ordenacion en SQL con OracleRestricciones y Ordenacion en SQL con Oracle
Restricciones y Ordenacion en SQL con Oracle
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper report
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
 
Usaalmacen
UsaalmacenUsaalmacen
Usaalmacen
 
Usaalmacen
UsaalmacenUsaalmacen
Usaalmacen
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 

Destacado

Regimen de excepcion
Regimen de excepcionRegimen de excepcion
Regimen de excepcionAna Claudia
 
Régimen de excepción
Régimen de excepciónRégimen de excepción
Régimen de excepciónMY CLASS
 
RÉGIMEN DE EXCEPCIÓN - Lorena Corne
RÉGIMEN DE EXCEPCIÓN - Lorena CorneRÉGIMEN DE EXCEPCIÓN - Lorena Corne
RÉGIMEN DE EXCEPCIÓN - Lorena CorneLorena Corne
 
Vitaminas hidrosolubles
Vitaminas hidrosolublesVitaminas hidrosolubles
Vitaminas hidrosolublesJesus Abundis
 
Garantias Constitucionales
Garantias ConstitucionalesGarantias Constitucionales
Garantias ConstitucionalesMY CLASS
 

Destacado (8)

Régimen de excepción
Régimen de excepción Régimen de excepción
Régimen de excepción
 
LAS VITAMINAS
LAS VITAMINASLAS VITAMINAS
LAS VITAMINAS
 
Estado de excepcion
Estado de excepcionEstado de excepcion
Estado de excepcion
 
Regimen de excepcion
Regimen de excepcionRegimen de excepcion
Regimen de excepcion
 
Régimen de excepción
Régimen de excepciónRégimen de excepción
Régimen de excepción
 
RÉGIMEN DE EXCEPCIÓN - Lorena Corne
RÉGIMEN DE EXCEPCIÓN - Lorena CorneRÉGIMEN DE EXCEPCIÓN - Lorena Corne
RÉGIMEN DE EXCEPCIÓN - Lorena Corne
 
Vitaminas hidrosolubles
Vitaminas hidrosolublesVitaminas hidrosolubles
Vitaminas hidrosolubles
 
Garantias Constitucionales
Garantias ConstitucionalesGarantias Constitucionales
Garantias Constitucionales
 

Similar a DB PLSQL Procedimientos Excepciones

Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)José Toro
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM Kamisutra
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosJosé Antonio Sandoval Acosta
 
Afinamientodebasesdedatosyservidoreswebs
AfinamientodebasesdedatosyservidoreswebsAfinamientodebasesdedatosyservidoreswebs
Afinamientodebasesdedatosyservidoreswebsricardosusa5
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
 
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsqlRicardo Riquelme Pinto
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollbackArchCHUZ
 
Forms 10g procedimientos y cursores
Forms 10g procedimientos y cursoresForms 10g procedimientos y cursores
Forms 10g procedimientos y cursoresEdwin Romero
 
cream code with objective-c
cream code with objective-ccream code with objective-c
cream code with objective-cidealistaimasd
 

Similar a DB PLSQL Procedimientos Excepciones (20)

Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
Afinamientodebasesdedatosyservidoreswebs
AfinamientodebasesdedatosyservidoreswebsAfinamientodebasesdedatosyservidoreswebs
Afinamientodebasesdedatosyservidoreswebs
 
Manual sql server
Manual sql serverManual sql server
Manual sql server
 
Manualsqlserverparte
ManualsqlserverparteManualsqlserverparte
Manualsqlserverparte
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)
 
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollback
 
Forms 10g procedimientos y cursores
Forms 10g procedimientos y cursoresForms 10g procedimientos y cursores
Forms 10g procedimientos y cursores
 
Examen final de sql nadia
Examen final de sql nadiaExamen final de sql nadia
Examen final de sql nadia
 
PLSQL y paquetes
PLSQL y paquetesPLSQL y paquetes
PLSQL y paquetes
 
Sql
SqlSql
Sql
 
cream code with objective-c
cream code with objective-ccream code with objective-c
cream code with objective-c
 
Sql
SqlSql
Sql
 
S06.02 ETL BD - Datamart.pdf
S06.02 ETL BD - Datamart.pdfS06.02 ETL BD - Datamart.pdf
S06.02 ETL BD - Datamart.pdf
 
Ejercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sqlEjercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sql
 

Último

Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 

Último (20)

Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 

DB PLSQL Procedimientos Excepciones

  • 1. Bases de Datos Unidad El Lenguaje PL/SQL (Procedimientos y Excepciones) 2011 Erwin Fischer 2
  • 2. Subprogramas Funciones y Procedimientos almacenados Los subprogramas son Bloques PL/SQL nominados que pueden tomar parámetros y ser invocados a voluntad por el programador. PL/SQL tiene dos tipos de subprogramas, denominados funciones y procedimientos (almacenados) Tanto las funciones y los procedimientos admiten un conjunto de parámetros que serán especificados por el programa que realice la invocación, y llevan a cabo un conjunto de acciones Ambos pueden modificar los datos pasados como parámetros, la diferencia entre ambos es que la función siempre retorna un único valor, mientras que un procedimiento no. 2011 Erwin Fischer 3
  • 3. Create Procedure CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ] IS | AS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [function_name]; 2011 Erwin Fischer 4
  • 4. Subprogramas Funciones y Procedimientos almacenados Los parámetros tienen un nombre distintivo y un tipo de datos, pero también pueden especificarse como: IN El parámetro se utiliza únicamente como entrada OUT El parámetro se utiliza únicamente como valor de salida IN OUT El parámetro se utiliza en ambos sentidos. 2011 Erwin Fischer 5
  • 5. Variables de sustitución • En Los bloques PL/SQL se pueden utilizar variables de sustitución, que nos pedirán datos por pantalla antes de ejecutar el bloque. • Esta variable tienen que ir antepuesta del & para que funcionen. 2011 Erwin Fischer 6
  • 6. Bloque que nos pide el Id de un empleado y nos muestra su nombre DECLARE Vnombre Cliente.nombre%TYPE; BEGIN select nombre into Vnombre from Cliente where numCliente = '&VnumCliente’; DBMS_OUTPUT.PUT_LINE (Vnombre); END; 2011 Erwin Fischer 7
  • 7. Crear un procedimiento • Diseñe un procedimiento, que reciba como parámetro el numero de cliente y muestre por consola, el numero, el nombre y el apellido. • En caso que no lo encuentre que indique un mensaje 2011 Erwin Fischer 8
  • 8. Preparando los datos • Para cargar la tabla Cliente, puede usar el script que se encuentra en orahelp.blogspot.com bajo la entrada Dream home completo http://orahelp.blogspot.com/2007/07/dre am-home-completo.html 2011 Erwin Fischer 9
  • 9. Creando la tabla Cliente create table CLIENTE ( NUMCLIENTE CHAR(4) not null, NOMBRE CHAR(30), APELLIDO CHAR(30), DIRECCION CHAR(35), TELEFONO CHAR(10), TIPOPREF CHAR(25), MAXRENT FLOAT, constraint PK_CLIENTE primary key (NUMCLIENTE) ); 2011 Erwin Fischer 10
  • 10. Insertando Registros begin insert into cliente values('CR78','Juan','Kayser','55 High ST,Londonn,SW14EH','0207774564','Departamento',450); insert into cliente values('CR57','Alicia','Soto','63 Fern Dr,. GlasgowG42 OBL','0141324183','Departamento',350); insert into cliente values('CR72','Miguel','Torres','62 Well St, Glasgow,G42','0141943740','Casa',750); insert into cliente values('CR63','Maria','Perez','13 Park PI, Glasgow,G4 0QR','0141225741','Departamento',600); end 2011 Erwin Fischer 11
  • 11. Procedimiento verCliente CREATE OR REPLACE PROCEDURE verCliente (pNumCliente VARCHAR2) IS vNumCliente Cliente.numCliente%TYPE; vNombre Cliente.nombre%TYPE; vApellido Cliente.apellido%type; BEGIN select numCliente, nombre, apellido into vnumCliente, vNombre, vApellido from cliente where numCliente = pNumCliente; DBMS_OUTPUT.PUT_LINE('NumCliente : ' ||vNumCliente||' Nombre : '||trim(vNombre)||' Apellido : ' ||vApellido); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No hemos encontrado al Cliente ' || pNumCliente); END; 2011 Erwin Fischer 12
  • 12. Llamada a un Procedimiento • Para invocar un procedimiento, basta nombrarlo indicando los parámetros requeridos: begin verCliente('CR78'); end 2011 Erwin Fischer 13
  • 13. Para descubrir qué procedimientos y funciones ha creado Utilice la siguiente consulta de SQL: select object_type, object_name from user_objects where object_type = 'PROCEDURE' or object_type = 'FUNCTION'; Para eliminar un procedimiento/función: drop procedure <procedure_name>; drop function <function_name>; 2011 Erwin Fischer 14
  • 14. Diseño Procedimiento • Diseñe un Procedimiento que ingrese los datos de una visita a una propiedad, esto es ingresar los datos a la tabla visita: • Cada uno de los atributos de la tabla, deben ser pasados al procedimiento como parámetros, y se debe validar que exista el cliente y la propiedad. 2011 Erwin Fischer 15
  • 15. Consulta • ¿Cómo verificamos que un cliente existe, en la tabla Cliente? 2011 Erwin Fischer 16
  • 16. Primero creamos función que valida que el cliente exista CREATE OR REPLACE Function validaCliente (pNumCliente VARCHAR2) return boolean IS vNumCliente Cliente.numCliente%TYPE; BEGIN select numCliente into vnumCliente from cliente where numCliente = pNumCliente; return TRUE; EXCEPTION WHEN NO_DATA_FOUND THEN return FALSE; END; 2011 Erwin Fischer 17
  • 17. Unidad - PL/SQL • Fin 2011 Erwin Fischer 18