Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Curso de pl sql básico

376 visualizaciones

Publicado el

Curso Básico de PL SQL sesión 3.

Publicado en: Educación
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Curso de pl sql básico

  1. 1. Por: Byron Quisquinay
  2. 2. Ciclos  Como parte de los lenguajes de programación contamos con herramientas para tareas repetitivas, para ello empleamos Ciclos o bucles. PL/SQL nos ofrece los ciclos:  FOR  LOOP  WHILE
  3. 3. ¿Como decidir cuándo usar cuál de estas sentencias de proceso en ciclo repetitivo?  Ciclo numérico FOR: Se recomienda utilizarlo cuando se tiene claro las veces de interacción necesarias para el proceso de las sentencias que contendrá. Entre un valor mínimo y un máximo (por ejemplo: de 1 a 10 veces). Y que su ejecución no será interrumpida (finalizada) antes de esas interacciones. Excepto claro cuando se genere una excepción.  Used cuenta con el script: Script_curso_PLSQL_Basico_m3_01.sql  Seleccione de dicho script el PL anónimo: ‘For como ciclo controlado’. Cópielo y péguelo a su herramienta para ejecución de SQL y PL/SQL.  Analíselo y ejecútelo.
  4. 4. --Pl/SQl anónimo: For como ciclo controlado --Curso: PL/SQL Básico --Script: Script_curso_PLSQL_Basico_m3_01 --Objetivo: Instruir a los participantes del curso en el uso de FOR como ciclo controlado. --Autor: Byron Quisquinay --Fecha Elaboración: 16/12/2013 --Versión del script: 01 declare begin for ciclo_for in 1..10 loop begin dbms_output.put_line(ciclo_for); end; end loop; --ciclo_for end;
  5. 5. Ciclo condicional WHILE  Se podría emplear cuando no se tiene conocimiento de interacciones repetitivas que se requieren para las sentencias que contendrá el ciclo. Cuando se requiere una finalización condicionada de las interacciones del ciclo y que no se ejecute ni una vez más según la condición.  De su Script para el módulo 2 copie y peque el PL anónimo: “While ciclo condicional.”.  Analícelo y ejecútelo
  6. 6. --Pl/SQl anónimo: While ciclo condicional. --Curso: PL/SQL Básico --Script: Script_curso_PLSQL_Basico_m3_01 --Objetivo: Instruir a los participantes del curso en el uso de While como ciclo condicionado. --Autor: Byron Quisquinay --Fecha Elaboración: 16/12/2013 --Versión del script: 01 declare lv_valor_incremental number(1):= 1; lc_valor_maximo CONSTANT number(1):= 5; begin -- Loop While lv_valor_incremental <= lc_valor_maximo while (lv_valor_incremental <= lc_valor_maximo) loop begin dbms_output.put_line(lv_valor_incremental); lv_valor_incremental := lv_valor_incremental + 1; end; end loop; -- Loop While lv_valor_incremental <= lc_valor_maximo end;
  7. 7. Ciclo Loop  Se podría emplear cuando no se tiene conocimiento de interacciones repetitivas que se requieren para las sentencias que contendrá el ciclo. Cuando se requiere una finalización temprana del mismo y cuando se debe de ejecutar al menos una vez.  De su Script para el módulo 2 copie y peque el PL anónimo: “Loop ciclo condicional de ejecución condicionada y ejecutado al menos una vez.”.  Analícelo y ejecútelo.
  8. 8. --Pl/SQl anónimo: Loop ciclo condicional de ejecución condicionada y ejecutado al menos una vez. --Curso: PL/SQL Básico --Script: Script_curso_PLSQL_Basico_m3_01 --Objetivo: Instruir a los participantes del curso en el uso de While como ciclo condicionado. --Autor: Byron Quisquinay --Fecha Elaboración: 16/12/2013 --Versión del script: 01 declare lv_fecha_condicion date := sysdate+1; lv_fecha_evaluar date := sysdate; begin -- Loop While lv_valor_incremental <= lc_valor_maximo Loop begin dbms_output.put_line('Es: '||lv_fecha_evaluar||' Igual a: '||lv_fecha_condicion); --Evaluación para la finalización del ciclo, si la fecha evaluada no es igual a la necesaria para la ejecución del ciclo, entonces finalícelo. if (lv_fecha_evaluar != lv_fecha_condicion) then exit; end if; end; end loop; -- Loop While lv_valor_incremental <= lc_valor_maximo end;
  9. 9. Ejercitándonos un poco…  Modifique el PL anónimo del ciclo FOR para que de 1 a 30 despliegue Sysdate + la variable del control del ciclo.  Modifique el PL anónimo del ciclo While para que tenga la condición de fecha evaluada y fecha condición del ciclo LOOP y que muestre el texto empleado del ciclo LOOP.  Realice cambios al PL anónimo del ciclo loop para que imprima números del 1 al 25.
  10. 10. Tarea del Módulo 3  PL anónimo 1: Construya un PL/SQL anónimo que de 1 a 5 muestre add_months(sysdate, iteracción de ciclo) y despliegue como salida del script el resultado de esa adición de meses a la fecha del Sistema en donde reside la Base de Datos.  PL anónimo 2: La solución del apartado anterior, esta vez con ciclo While.  PL anónimo 3: ahora con ciclo LOOP.  Cree un PL anónimo que: Bien, primero antes del PL inserte dos productos más en su catálogo de productos de tarea 4 del Módulo 1, además, inserte tres detalles más para la factura del primer módulo con distintos códigos de producto, ahora haga un ciclo FOR que vaya de 1 a la cantidad de datos en el detalle, dentro del ciclo, vaya de detalle en detalle buscando el precio para el producto y que actualice el total en base a la cantidad de producto.
  11. 11. Tabla de Valoración para la tarea Elemento Entregado Puenteo PL anónimo 1 20 PL anónimo 2 5 PL anónimo 3 5 PL anónimo 4 70

×