Curso de pl sql básico

Post on 30-Jun-2015

531 views 0 download

description

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

Transcript of Curso de pl sql básico

Curso de PL/SQL BásicoPor: Byron Quisquinay

M1

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.

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

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.

Estructura de un PL/SQLDeclare

<Declaración de variables o constantes>

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

Un PL anónimo simpleDeclare

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

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.

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

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.

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.

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

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.

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.

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

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

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

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.

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:

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

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.

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