Curso de pl sql básico

21
Curso de PL/SQL Básico Por: Byron Quisquinay M1

description

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

Transcript of Curso de pl sql básico

Page 1: Curso de pl sql básico

Curso de PL/SQL BásicoPor: Byron Quisquinay

M1

Page 2: Curso de pl sql básico

Introducción a este cursoEl presente es un curso dirigido en

modalidad de tutoría, empleando la exposición como método de transmisión del conocimiento.

Tiene como objetivo el preparar a su audiencia para el uso de este lenguaje para crear soluciones informáticas.

Se pretende tener sesiones de exposición y de problemas en clase para afianzar el conocimiento.

Además en cada sesión se dejará una tarea.Al finalizar existirá una evaluación final.

Page 3: Curso de pl sql básico

¿Qué es PL/SQL?PL/SQL es definido como una extensión de

SQL. Permite la utilización de sentencias SQL y sentencias en modalidad de control tales como If, sentencias de bucles (ciclos) y muchas más herramientas propias del lenguaje. Es un lenguaje estructurado por bloques y es portable pues una vez enviado a Oracle podrá ser interpretado y ejecutado, es decir, si usted envía a través de una conexión de Base de Datos Oracle no importa la plataforma desde donde la envíe si ésta logra conexiones a la Base de Datos Oracle.

Page 4: Curso de pl sql básico

Categorías de PL/SQLExisten dos categorías de PL/SQLPL/SQL anónimo o de bloque anónimo yProcedimientos almacenados (Stored Procedures).

Los primeros son aquellos que no están almacenados y compilados en la base de datos. Pueden pues residir en archivos para su ejecución con alguna herramienta como SLQ Developer de Oracle o bien estar embebidos en alguna aplicación.

Los segundos si están almacenados en la base de datos con un nombre y pueden ser invocados desde Aplicativos o herramientas tales como SQL Developer de Oracle.

Page 5: Curso de pl sql básico

Estructura de un PL/SQLDeclare

<Declaración de variables o constantes>

Begin <Cuerpo del PL> [Exepciones] <Manejo de excepciones.>End;

Page 6: Curso de pl sql básico

Un PL anónimo simpleDeclare

Begin dbms_output.put_line(´Mensaje´);End;

Page 7: Curso de pl sql básico

Un PL/SQL para insertar datos a una tablaPara este punto deberá contar con el script:

Script_curso_PLSQL_Basico_m1_01.sql, en él están:Sentencias para crear Secuencias y tablas.Además del PL/SQL que permitirá realizar el

insert a una tabla.

Page 8: Curso de pl sql básico

--Script de PL/SQL --Curso de PL/SQL Básico--01declare

v_id_cliente number(10); v_nombres varchar2(100); v_apellidos varchar2(100);

begin --Se asigna siguiente valor de secuencia a v_id_cliente begin select seq_id_cliente_telco_01.nextval into v_id_cliente from dual; end;

--Asignación de valores a variables. v_nombres := 'Juan Plablo'; v_apellidos := 'Pérez Pérez';

--Inserción de datos a tabla de clientes begin insert into tbl_cliente_telco (id_cliente, nombres, apellidos ) values ( v_id_cliente, v_nombres, v_apellidos ); end;

commit;end;

Page 9: Curso de pl sql básico

Modifique el PL anterior para:Que inserte sus nombres y apellidos. Declare una variable más que deberá recibir

la cantidad de registros que hay en la tabla de Cliente.

Mande un mensaje con la cantidad de registros.

Page 10: Curso de pl sql básico

Actualizando DatosDel Script ejecute la sentencia de agregado

de campos a la tabla.Luego copie el Script para actualizado de

información.Ejecútelo.Compruebe con Select la información de la

tabla de Clientes.

Page 11: Curso de pl sql básico

--Curso: PL/SQL Básico--Script: Script_curso_PLSQL_Basico_m1_01--Objetivo: Instruir a los participantes del curso en el uso de PL/SQL

para la actualización de datos--Autor: Byron Quisquinay--Fecha Elaboración: 12/12/2013--Versión del script: 01declare

begin begin update tbl_cliente_telco set nit = '2562903-4', dpi = '123456789012' where id_cliente = 1; end; commit;end;

Page 12: Curso de pl sql básico

Modifique el PL anterior para:Actualice los datos del otro cliente que usted

insertó. También emplee el script para inserción de

datos e inserte un cliente más, con todos los datos incluyendo NIT y DPI.

Page 13: Curso de pl sql básico

Borrando DatosDe su escript del módulo 1 de este curso,

copie el Script para borrado de información.Ejecútelo.Comprueba la información en la tabla de

Clientes.

Page 14: Curso de pl sql básico

--Curso: PL/SQL Básico--Script: Script_curso_PLSQL_Basico_m1_01--Objetivo: Instruir a los participantes del curso en el uso de

PL/SQL para el borrado de datos--Autor: Byron Quisquinay--Fecha Elaboración: 12/12/2013--Versión del script: 01declare

begin begin delete tbl_cliente_telco where id_cliente = 3; end; commit;end;

Page 15: Curso de pl sql básico

%rowtype:Que permite definir un tipo de dato basado

en un objeto.De su script del módulo 1 emplee el Script

para uso de %rowtype.Ejecútelo.Examine el código y determine la salida en la

herramienta que emplea para ejecutar SQL o PL/SQL.

Page 16: Curso de pl sql básico

--Curso: PL/SQL Básico--Script: Script_curso_PLSQL_Basico_m1_01--Objetivo: Instruir a los participantes del curso en el uso de %rowtype para

definir tipos.--Autor: Byron Quisquinay--Fecha Elaboración: 12/12/2013--Versión del script: 01declarev_datos_cliente tbl_cliente_telco%rowtype;begin begin select * into v_datos_cliente from tbl_cliente_telco where id_cliente = 1; end; dbms_output.put_line('Cliente no: '||v_datos_cliente.id_cliente||' - Nombres: '||

v_datos_cliente.nombres||' - Apellidos: '||v_datos_cliente.apellidos||' - Nit: '||v_datos_cliente.nit||' - Número de DPI: '||v_datos_cliente.dpi);

commit;end;

Page 17: Curso de pl sql básico

TAREA del Módulo 1 PL/SQL anónimo 1Construya un PL anónimo que:

Tenga variables: Para la fecha del Sistema. Nombre de usuario de Base de Datos de la sesión.

Que asigne los valores a las variables, usando Select Into.

Que despliegue como salida de ejecución los datos de la variable.

Page 18: Curso de pl sql básico

TAREA del Módulo 1 PL/SQL anónimo 2Construya un PL anónimo que:

1. Con la función Sys_context seleccione:SELECT SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA') Esquema, YS_CONTEXT ('USERENV', 'CURRENT_USER') Usuario, SYS_CONTEXT ('USERENV', 'SESSION_USER') Usuario_sesion, SYS_CONTEXT ('USERENV', 'HOST') Nombre_Maquina, SYS_CONTEXT ('USERENV', 'IP_ADDRESS') IP_Maquina, SYS_CONTEXT ('USERENV', 'DB_DOMAIN') FROM DUAL;

2. Asigne a variables esos valores y desplieguelos en la salida de ejecución de la herramienta que emplea para el acceso a la Base de Datos:

Page 19: Curso de pl sql básico

TAREA del Módulo 1 PL/SQL anónimo 3Cree una tabla que lleve el log de lo que irá haciendo el

PL/anónimo que:1. Inserte en su tabla de bitácora de ejecución o Log:

1. La Fecha (con hora y minutos) 2. Una Leyenda que diga: Inicia proceso.3. El usuario de Base de Datos que lo ejecutó.

2. Seleccione la cantidad de clientes (y lo asigne a una variable) y escriba (inserte) en el log: Cantidad de Clientes: xx.

3. Que en una variable de tipo ‘Tabla de Clientes’ se asignen los valores para todos los campos de la tabla para el cliente 3.

4. Escriba (inserte) en el log los datos con leyendas que permitan interpretar la información.

5. Que inserte en la bitácora la leyenda ‘Eliminando datos’.6. Que borre la información del cliente 2.7. Que haga un conteo de registros asignado a una variable.8. Que escriba en el log la cantidad de registros.9. Por último que inserte la leyenda ‘Fin del Proceso’.

Page 20: Curso de pl sql básico

TAREA del Módulo 1 PL/SQL anónimo 4En un archivo del Script para esta sesión del

curso usted tiene sentencias SQL para crear tablas, secuencias, así como para realizar inserts. Recuerde hacer commit pues el script no lo incluye.

Ahora le toca construir un PL/SQL anónimo que busque el precio de un artículo, busque el que está insertado en el detalle de factura y asigne el valor en una variable.

Luego actualice el detalle definiendo el valor apropiado para TOTAL_ARTICULO, basado en la multiplicación de la cantidad del artículo por el precio del mismo.

Page 21: Curso de pl sql básico

Debe entregar:PL/SQL ANÓNIMO 1 20 Puntos

PL/SQL ANÓNIMO 2 20 Puntos

PL/SQL ANÓNIMO 3 30 Puntos

PL/SQL ANÓNIMO 4 30 Puntos

Entrege un archivo con cada PL/SQL anónimo con el nombre:Script_plsql_anónimo_modulo1_<Número de PL[1..4]>_<su nombre completo>.sql