curso de pl sql básico

11
Por: Byron Quisquinay

Upload: byron-quisquinay

Post on 20-Jul-2015

125 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Curso de pl sql básico

Por: Byron Quisquinay

Page 2: Curso de pl sql básico

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

Page 3: Curso de pl sql básico

¿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.

Page 4: Curso de pl sql básico

--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;

Page 5: Curso de pl sql básico

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

Page 6: Curso de pl sql básico

--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;

Page 7: Curso de pl sql básico

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.

Page 8: Curso de pl sql básico

--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 delciclo, 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;

Page 9: Curso de pl sql básico

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.

Page 10: Curso de pl sql básico

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.

Page 11: Curso de pl sql básico

Tabla de Valoración para la tareaElemento Entregado Puenteo

PL anónimo 1 20

PL anónimo 2 5

PL anónimo 3 5

PL anónimo 4 70