SlideShare una empresa de Scribd logo
1 de 11
Por: Byron Quisquinay
%type
 Con el atributo %type usted asigna a una variable el

tipo de una columna perteneciente a una tabla
existente en la Base de Datos.
 Es decir que usted no necesita definir los tipos de datos
para variables que recibirán el valor almacenado en un
campo.
 El uso de este atributo es una buena práctica dada la
posibilidad de que en determinado momento el tipo,
ancho y precisión de un campo de tabla puede variar.
Explorando %type
 Usted debe contar con el Script:

Script_curso_PLSQL_Basico_m2_01.sql.
 Entonces encontrará el PL anónimo:
--Pl/SQl anónimo: Uso de %type
 Cópielo a su herramienta, analicemos su construcción
y funcionamiento.
 Ejecútelo
--Pl/SQl anónimo: Uso de %type
--Curso:
PL/SQL Básico
--Script:
Script_curso_PLSQL_Basico_m2_01
--Objetivo:
Instruir a los participantes del curso en el uso de PL/SQL para el empleo de %type, exception e if.
--Autor:
Byron Quisquinay
--Fecha Elaboración: 12/12/2013
--Versión del script: 01
declare
v_articulo_id tbl_precio_articulo.articulo_id%type;
v_factura_id tbl_detalle_factura.factura_id%type;
v_precio_articulo tbl_precio_articulo.precio_articulo%type;
begin
--Buscaremos el artículo (mayor) del detalle de factura
begin
select max(DetFact.articulo_id)
into v_articulo_id
from tbl_detalle_factura DetFact;
exception
when no_data_found then
v_articulo_id := 0;
end;
--Si se encontró una artículo facturado se buscará el detalle.
if (v_articulo_id != 0) then
begin
select PrecArt.precio_articulo
into v_precio_articulo
from tbl_precio_articulo PrecArt
where PrecArt.articulo_id = v_articulo_id;
end;
begin
select DetFact.factura_id
into v_factura_id
from tbl_detalle_factura DetFact
where articulo_id = v_articulo_id;
end;
begin
update tbl_detalle_factura DetFact
set DetFact.total_articulo = nvl(DetFact.cantidad_articulo,0) * nvl(v_precio_articulo,0)
where DetFact.factura_id = v_factura_id;
end;
end if;
commit;
end;
Se puede mejorar…
 Ahora en su archivo de Script para el Módulo 2 busque

el PL anónimo:
--Pl/SQl anónimo: Uso de %type mejorado
 ¿Qué nota en esta otra versión?
declare
v_articulo_id tbl_precio_articulo.articulo_id%type;
v_factura_id
tbl_detalle_factura.factura_id%type;
v_precio_articulo tbl_precio_articulo.precio_articulo%type;
begin
--Buscaremos el artículo (mayor) del detalle de factura
begin
select max(DetFact.articulo_id)
into v_articulo_id
from tbl_detalle_factura DetFact;
exception
when no_data_found then
v_articulo_id := 0;
end;
--Si se encontró una artículo facturado se buscará el detalle.
if (v_articulo_id != 0) then
begin
select nvl(PrecArt.precio_articulo, 0) precio_articulo
into v_precio_articulo
from tbl_precio_articulo PrecArt
where PrecArt.articulo_id = v_articulo_id;
exception
when no_data_found then
v_precio_articulo := 0;
end;
--Si se encontró un precio distinto de cero busque la actura a la que está asociado
if (v_precio_articulo != 0) then
begin
select DetFact.factura_id
into v_factura_id
from tbl_detalle_factura DetFact
where articulo_id = v_articulo_id;
exception
when no_data_found then
v_factura_id := null;
end;
--Si hay factura para actualizar entonces realice la actualización en base al precio del artículo
if (v_factura_id is not null) then
begin
update tbl_detalle_factura DetFact
set DetFact.total_articulo = nvl(DetFact.cantidad_articulo,0) * nvl(v_precio_articulo,0)
where DetFact.factura_id = v_factura_id;
end;
end if; --Si hay factura para actualizar entonces realice la actualización en base al precio del artículo

end if;--Si se encontró un precio distinto de cero busque la factura a la que está asociado

end if; --Si se encontró una artículo facturado se buscará el detalle.
commit;
end;
Practicando un poco
 Construya un PL para:
 Insertar un artículo en tbl_precio_articulo. Recuerde que estas
sentencias ya las posee en el Script del Módulo 1, no se desgaste
escribiéndolas de nueva cuenta. Este artículo tendrá un precio de
100.25.
 También deberá insertar un detalle de factura para este artículo, con
1 unidad facturada, del nuevo artículo que recién usted ha
insertado.
 ¿Funcionaría el PL anónimo: “--Pl/SQl anónimo: Uso de

%type mejorado”, para actualizar “tbl_detalle_factura.
total_articulo”?
 Si cree que es afirmativa la respuesta la pregunta anterior, ejecute
el Script, de caso contrario modifique el PL anónimo para que
pueda actualizar el Total de Artículo para la nueva línea en
“tbl_detalle_factura”.
Constantes
 Al declarar CONSTANT usted define un elemento

que no puede variar su valor.
 Del script del Módulo 2 tome el PL anónimo:
--Pl/SQl anónimo:

 Analice el PL.
 Ejecútelo.

Realizando cálculos empleando constantes
--Pl/SQl anónimo: Realizando cálculos empleando constantes
--Curso:
PL/SQL Básico
--Script:
Script_curso_PLSQL_Basico_m2_01
--Objetivo:
Instruir a los participantes del curso en el uso de PL/SQL para el empleo de
operaciones matemáticas.
--Autor:
Byron Quisquinay
--Fecha Elaboración: 12/12/2013
--Versión del script: 01
declare
c_impuesto
constant number(1) :=5; --Constante del impuesto para el pequeño contribuyente.
v_valor_facturado number(18,2)
:=3000; --Variable que tendrá el valor facturado.
v_impuesto_pagar number(18,2);
--Valor resultante de calcular sobre el valor facturado el
impuesto a pagar.
begin
v_impuesto_pagar := round((v_valor_facturado * c_impuesto)/100,2);
dbms_output.put_line('De un valor facturado de: '||v_valor_facturado||' el impuesto a pagar es:
'||v_impuesto_pagar);
end;
Tareas del Módulo 2
1.
2.
3.

4.

Construya un PL anónimo que calcule para un total de venta
realizado el valor de IVA a pagar, demuestre los valores de Venta e
IVA.
Cree un PL anónimo para que de un valor definido como variable
controle si es positivo o negativo, de ser positivo que retorne el
mensaje: Positivo, de ser negativo que muestre el mensaje: Negativo.
Construya un PL anónimo con una constante que contenga un
divisor, una variable que contenga el número a dividir, si el residuo de
la división es cero (0) entonces que despliegue la leyenda ‘Realizar
commit’, si no es cero, entonces que despliegue la leyenda: ‘Aún no
realizar comit’; Valor de la constante = 1000, primer valor de la
variable = 2000.
Codifique un PL anónimo que tenga una constante que será una
fecha fija esperada = 20/diciembre/2013, una variable que tendrá una
fecha a evaluar, si la fecha esperada es igual a la evaluada, que se
indique un mensaje así: ‘Fechas coinciden’, de lo contrario la leyenda
‘Fechas no coinciden’.
Tabla de Valoración para la tarea
Elemento Entregado

Punteo

PL anónimo 1

25

PL anónimo 2

25

PL anónimo 3

25

PL anónimo 2

25

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Manual de Generación de Nómina (v1.0) en eFactory Software ERP/CRM en la nube
Manual de Generación de Nómina (v1.0) en eFactory Software ERP/CRM en la nubeManual de Generación de Nómina (v1.0) en eFactory Software ERP/CRM en la nube
Manual de Generación de Nómina (v1.0) en eFactory Software ERP/CRM en la nube
 
Derivadas
DerivadasDerivadas
Derivadas
 
!Prograc2
!Prograc2!Prograc2
!Prograc2
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
Practica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FIPractica 11 Laboratorio de Computación para Ingenieros FI
Practica 11 Laboratorio de Computación para Ingenieros FI
 

Destacado (20)

Royecto investigacion pedagogica
Royecto investigacion pedagogicaRoyecto investigacion pedagogica
Royecto investigacion pedagogica
 
ÉTica e cidadania
ÉTica e cidadaniaÉTica e cidadania
ÉTica e cidadania
 
Precentacion web 2.0 jo
Precentacion web 2.0  joPrecentacion web 2.0  jo
Precentacion web 2.0 jo
 
Promocionventas
PromocionventasPromocionventas
Promocionventas
 
Sts 2619 2006
Sts 2619 2006Sts 2619 2006
Sts 2619 2006
 
10 harmonicas
10 harmonicas10 harmonicas
10 harmonicas
 
Tarea 4
Tarea 4Tarea 4
Tarea 4
 
Oportunidades 0314
Oportunidades 0314Oportunidades 0314
Oportunidades 0314
 
Recursos utilizados
Recursos utilizadosRecursos utilizados
Recursos utilizados
 
Presentación1
Presentación1Presentación1
Presentación1
 
Playcross 20
Playcross 20Playcross 20
Playcross 20
 
Mayra alejandra gouriyu epiayu 10º
Mayra alejandra gouriyu epiayu 10ºMayra alejandra gouriyu epiayu 10º
Mayra alejandra gouriyu epiayu 10º
 
DRINK LIGHT
DRINK LIGHTDRINK LIGHT
DRINK LIGHT
 
Slide pedagógico
Slide pedagógicoSlide pedagógico
Slide pedagógico
 
áLbum de fotografías
áLbum de fotografíasáLbum de fotografías
áLbum de fotografías
 
Vacaciones
VacacionesVacaciones
Vacaciones
 
éTica e cidadania
éTica e cidadaniaéTica e cidadania
éTica e cidadania
 
8. esqueleto del cuello
8. esqueleto del cuello8. esqueleto del cuello
8. esqueleto del cuello
 
Mantenimiento de pc
Mantenimiento de pcMantenimiento de pc
Mantenimiento de pc
 
Notas Definitiva Etica
Notas Definitiva EticaNotas Definitiva Etica
Notas Definitiva Etica
 

Similar a Curso de pl sql básico

U2-Algoritmos Estructuras Secuenciales.pdf
U2-Algoritmos Estructuras Secuenciales.pdfU2-Algoritmos Estructuras Secuenciales.pdf
U2-Algoritmos Estructuras Secuenciales.pdfDalilaGomez12
 
Ciclo final de costos
Ciclo final de costos Ciclo final de costos
Ciclo final de costos SENA
 
Tarea final sie 2012
Tarea final sie 2012Tarea final sie 2012
Tarea final sie 2012Diego Nauto
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
Reportes con crystal reports
Reportes con crystal reportsReportes con crystal reports
Reportes con crystal reportsKevin Alvarado
 
Guia 3 macros y solver control activex
Guia 3 macros y solver  control activexGuia 3 macros y solver  control activex
Guia 3 macros y solver control activexMaría C. Plata
 
[Pauta] [Inf 140] Certamen I
[Pauta] [Inf 140]   Certamen I[Pauta] [Inf 140]   Certamen I
[Pauta] [Inf 140] Certamen IDaniel Barraza
 
Santaella u4 estructurassecuenciales
Santaella u4 estructurassecuencialesSantaella u4 estructurassecuenciales
Santaella u4 estructurassecuencialesSol Hernández
 
Guía didáctica estructura secuenciales
Guía didáctica estructura secuencialesGuía didáctica estructura secuenciales
Guía didáctica estructura secuencialesLeany González
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosJosé Antonio Sandoval Acosta
 
Estudio financiero flujos de caja.ppt
Estudio financiero flujos de caja.pptEstudio financiero flujos de caja.ppt
Estudio financiero flujos de caja.pptRafa Merino
 

Similar a Curso de pl sql básico (20)

Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Ayudantia 4 de junio
Ayudantia 4 de junioAyudantia 4 de junio
Ayudantia 4 de junio
 
JAVA métodos/funciones
JAVA métodos/funcionesJAVA métodos/funciones
JAVA métodos/funciones
 
U2-Algoritmos Estructuras Secuenciales.pdf
U2-Algoritmos Estructuras Secuenciales.pdfU2-Algoritmos Estructuras Secuenciales.pdf
U2-Algoritmos Estructuras Secuenciales.pdf
 
Ciclo final de costos
Ciclo final de costos Ciclo final de costos
Ciclo final de costos
 
Tarea final sie 2012
Tarea final sie 2012Tarea final sie 2012
Tarea final sie 2012
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Reportes con crystal reports
Reportes con crystal reportsReportes con crystal reports
Reportes con crystal reports
 
Práctica nominas
Práctica nominasPráctica nominas
Práctica nominas
 
Guia 3 macros y solver control activex
Guia 3 macros y solver  control activexGuia 3 macros y solver  control activex
Guia 3 macros y solver control activex
 
[Pauta] [Inf 140] Certamen I
[Pauta] [Inf 140]   Certamen I[Pauta] [Inf 140]   Certamen I
[Pauta] [Inf 140] Certamen I
 
Santaella u4 estructurassecuenciales
Santaella u4 estructurassecuencialesSantaella u4 estructurassecuenciales
Santaella u4 estructurassecuenciales
 
Estructuras Secuenciales - Sullin Santaella
Estructuras Secuenciales - Sullin SantaellaEstructuras Secuenciales - Sullin Santaella
Estructuras Secuenciales - Sullin Santaella
 
Guía didáctica estructura secuenciales
Guía didáctica estructura secuencialesGuía didáctica estructura secuenciales
Guía didáctica estructura secuenciales
 
Unidad 2: Clases y objetos Ejercicio 3
Unidad 2: Clases y objetos Ejercicio 3Unidad 2: Clases y objetos Ejercicio 3
Unidad 2: Clases y objetos Ejercicio 3
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
 
Estudio financiero flujos de caja.ppt
Estudio financiero flujos de caja.pptEstudio financiero flujos de caja.ppt
Estudio financiero flujos de caja.ppt
 
Unidad 3: Herencia Ejercicio 2
Unidad 3: Herencia Ejercicio 2Unidad 3: Herencia Ejercicio 2
Unidad 3: Herencia Ejercicio 2
 
E2 copia
E2   copiaE2   copia
E2 copia
 

Más de Byron Quisquinay

Manual del curso de sql fundamentos y práctica
Manual del curso de sql   fundamentos y prácticaManual del curso de sql   fundamentos y práctica
Manual del curso de sql fundamentos y prácticaByron Quisquinay
 
101 queries sql aplicado - respuestas
101 queries  sql aplicado - respuestas101 queries  sql aplicado - respuestas
101 queries sql aplicado - respuestasByron Quisquinay
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Byron Quisquinay
 
Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Byron Quisquinay
 
Casos de uso qué - cómo... por byron quisquinay
Casos de uso   qué - cómo... por byron quisquinayCasos de uso   qué - cómo... por byron quisquinay
Casos de uso qué - cómo... por byron quisquinayByron Quisquinay
 
Desarrollo (qué aplicar) - Normas y Estándares en la Programación Informática
Desarrollo (qué aplicar) - Normas y Estándares en la Programación InformáticaDesarrollo (qué aplicar) - Normas y Estándares en la Programación Informática
Desarrollo (qué aplicar) - Normas y Estándares en la Programación InformáticaByron Quisquinay
 

Más de Byron Quisquinay (12)

Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Manual del curso de sql fundamentos y práctica
Manual del curso de sql   fundamentos y prácticaManual del curso de sql   fundamentos y práctica
Manual del curso de sql fundamentos y práctica
 
101 queries sql aplicado - respuestas
101 queries  sql aplicado - respuestas101 queries  sql aplicado - respuestas
101 queries sql aplicado - respuestas
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 
Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo
 
Comprendiendo RUP
Comprendiendo   RUPComprendiendo   RUP
Comprendiendo RUP
 
Casos de uso qué - cómo... por byron quisquinay
Casos de uso   qué - cómo... por byron quisquinayCasos de uso   qué - cómo... por byron quisquinay
Casos de uso qué - cómo... por byron quisquinay
 
Desarrollo (qué aplicar) - Normas y Estándares en la Programación Informática
Desarrollo (qué aplicar) - Normas y Estándares en la Programación InformáticaDesarrollo (qué aplicar) - Normas y Estándares en la Programación Informática
Desarrollo (qué aplicar) - Normas y Estándares en la Programación Informática
 

Último

LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
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
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
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
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 

Último (20)

LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
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
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
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
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 

Curso de pl sql básico

  • 2. %type  Con el atributo %type usted asigna a una variable el tipo de una columna perteneciente a una tabla existente en la Base de Datos.  Es decir que usted no necesita definir los tipos de datos para variables que recibirán el valor almacenado en un campo.  El uso de este atributo es una buena práctica dada la posibilidad de que en determinado momento el tipo, ancho y precisión de un campo de tabla puede variar.
  • 3. Explorando %type  Usted debe contar con el Script: Script_curso_PLSQL_Basico_m2_01.sql.  Entonces encontrará el PL anónimo: --Pl/SQl anónimo: Uso de %type  Cópielo a su herramienta, analicemos su construcción y funcionamiento.  Ejecútelo
  • 4. --Pl/SQl anónimo: Uso de %type --Curso: PL/SQL Básico --Script: Script_curso_PLSQL_Basico_m2_01 --Objetivo: Instruir a los participantes del curso en el uso de PL/SQL para el empleo de %type, exception e if. --Autor: Byron Quisquinay --Fecha Elaboración: 12/12/2013 --Versión del script: 01 declare v_articulo_id tbl_precio_articulo.articulo_id%type; v_factura_id tbl_detalle_factura.factura_id%type; v_precio_articulo tbl_precio_articulo.precio_articulo%type; begin --Buscaremos el artículo (mayor) del detalle de factura begin select max(DetFact.articulo_id) into v_articulo_id from tbl_detalle_factura DetFact; exception when no_data_found then v_articulo_id := 0; end; --Si se encontró una artículo facturado se buscará el detalle. if (v_articulo_id != 0) then begin select PrecArt.precio_articulo into v_precio_articulo from tbl_precio_articulo PrecArt where PrecArt.articulo_id = v_articulo_id; end; begin select DetFact.factura_id into v_factura_id from tbl_detalle_factura DetFact where articulo_id = v_articulo_id; end; begin update tbl_detalle_factura DetFact set DetFact.total_articulo = nvl(DetFact.cantidad_articulo,0) * nvl(v_precio_articulo,0) where DetFact.factura_id = v_factura_id; end; end if; commit; end;
  • 5. Se puede mejorar…  Ahora en su archivo de Script para el Módulo 2 busque el PL anónimo: --Pl/SQl anónimo: Uso de %type mejorado  ¿Qué nota en esta otra versión?
  • 6. declare v_articulo_id tbl_precio_articulo.articulo_id%type; v_factura_id tbl_detalle_factura.factura_id%type; v_precio_articulo tbl_precio_articulo.precio_articulo%type; begin --Buscaremos el artículo (mayor) del detalle de factura begin select max(DetFact.articulo_id) into v_articulo_id from tbl_detalle_factura DetFact; exception when no_data_found then v_articulo_id := 0; end; --Si se encontró una artículo facturado se buscará el detalle. if (v_articulo_id != 0) then begin select nvl(PrecArt.precio_articulo, 0) precio_articulo into v_precio_articulo from tbl_precio_articulo PrecArt where PrecArt.articulo_id = v_articulo_id; exception when no_data_found then v_precio_articulo := 0; end; --Si se encontró un precio distinto de cero busque la actura a la que está asociado if (v_precio_articulo != 0) then begin select DetFact.factura_id into v_factura_id from tbl_detalle_factura DetFact where articulo_id = v_articulo_id; exception when no_data_found then v_factura_id := null; end; --Si hay factura para actualizar entonces realice la actualización en base al precio del artículo if (v_factura_id is not null) then begin update tbl_detalle_factura DetFact set DetFact.total_articulo = nvl(DetFact.cantidad_articulo,0) * nvl(v_precio_articulo,0) where DetFact.factura_id = v_factura_id; end; end if; --Si hay factura para actualizar entonces realice la actualización en base al precio del artículo end if;--Si se encontró un precio distinto de cero busque la factura a la que está asociado end if; --Si se encontró una artículo facturado se buscará el detalle. commit; end;
  • 7. Practicando un poco  Construya un PL para:  Insertar un artículo en tbl_precio_articulo. Recuerde que estas sentencias ya las posee en el Script del Módulo 1, no se desgaste escribiéndolas de nueva cuenta. Este artículo tendrá un precio de 100.25.  También deberá insertar un detalle de factura para este artículo, con 1 unidad facturada, del nuevo artículo que recién usted ha insertado.  ¿Funcionaría el PL anónimo: “--Pl/SQl anónimo: Uso de %type mejorado”, para actualizar “tbl_detalle_factura. total_articulo”?  Si cree que es afirmativa la respuesta la pregunta anterior, ejecute el Script, de caso contrario modifique el PL anónimo para que pueda actualizar el Total de Artículo para la nueva línea en “tbl_detalle_factura”.
  • 8. Constantes  Al declarar CONSTANT usted define un elemento que no puede variar su valor.  Del script del Módulo 2 tome el PL anónimo: --Pl/SQl anónimo:  Analice el PL.  Ejecútelo. Realizando cálculos empleando constantes
  • 9. --Pl/SQl anónimo: Realizando cálculos empleando constantes --Curso: PL/SQL Básico --Script: Script_curso_PLSQL_Basico_m2_01 --Objetivo: Instruir a los participantes del curso en el uso de PL/SQL para el empleo de operaciones matemáticas. --Autor: Byron Quisquinay --Fecha Elaboración: 12/12/2013 --Versión del script: 01 declare c_impuesto constant number(1) :=5; --Constante del impuesto para el pequeño contribuyente. v_valor_facturado number(18,2) :=3000; --Variable que tendrá el valor facturado. v_impuesto_pagar number(18,2); --Valor resultante de calcular sobre el valor facturado el impuesto a pagar. begin v_impuesto_pagar := round((v_valor_facturado * c_impuesto)/100,2); dbms_output.put_line('De un valor facturado de: '||v_valor_facturado||' el impuesto a pagar es: '||v_impuesto_pagar); end;
  • 10. Tareas del Módulo 2 1. 2. 3. 4. Construya un PL anónimo que calcule para un total de venta realizado el valor de IVA a pagar, demuestre los valores de Venta e IVA. Cree un PL anónimo para que de un valor definido como variable controle si es positivo o negativo, de ser positivo que retorne el mensaje: Positivo, de ser negativo que muestre el mensaje: Negativo. Construya un PL anónimo con una constante que contenga un divisor, una variable que contenga el número a dividir, si el residuo de la división es cero (0) entonces que despliegue la leyenda ‘Realizar commit’, si no es cero, entonces que despliegue la leyenda: ‘Aún no realizar comit’; Valor de la constante = 1000, primer valor de la variable = 2000. Codifique un PL anónimo que tenga una constante que será una fecha fija esperada = 20/diciembre/2013, una variable que tendrá una fecha a evaluar, si la fecha esperada es igual a la evaluada, que se indique un mensaje así: ‘Fechas coinciden’, de lo contrario la leyenda ‘Fechas no coinciden’.
  • 11. Tabla de Valoración para la tarea Elemento Entregado Punteo PL anónimo 1 25 PL anónimo 2 25 PL anónimo 3 25 PL anónimo 2 25