Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Curso de pl sql básico

1,266 views

Published on

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

Published in: Education
  • Be the first to comment

  • Be the first to like this

Curso de pl sql básico

  1. 1. Por: Byron Quisquinay
  2. 2. Introducción a este curso  El 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.
  3. 3. ¿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.
  4. 4. Categorías de PL/SQL Existen dos categorías de PL/SQL  PL/SQL anónimo o de bloque anónimo y  Procedimientos 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.
  5. 5. Estructura de un PL/SQL Declare <Declaración de variables o constantes> Begin <Cuerpo del PL> [Exepciones] <Manejo de excepciones.> End;
  6. 6. Un PL anónimo simple Declare Begin dbms_output.put_line(´Mensaje´); End;
  7. 7. Un PL/SQL para insertar datos a una tabla  Para 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.
  8. 8. --Script de PL/SQL --Curso de PL/SQL Básico --01 declare 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;
  9. 9. 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.
  10. 10. Actualizando Datos  Del 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.
  11. 11. --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: 01 declare begin begin update tbl_cliente_telco set nit = '2562903-4', dpi = '123456789012' where id_cliente = 1; end; commit; end;
  12. 12. 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.
  13. 13. Borrando Datos  De 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.
  14. 14. --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: 01 declare begin begin delete tbl_cliente_telco where id_cliente = 3; end; commit; end;
  15. 15. %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.
  16. 16. --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: 01 declare v_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;
  17. 17. TAREA del Módulo 1 PL/SQL anónimo 1  Construya 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.
  18. 18. TAREA del Módulo 1 PL/SQL anónimo 2  Construya 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:
  19. 19. TAREA del Módulo 1 PL/SQL anónimo 3  Cree una tabla que lleve el log de lo que irá haciendo el PL/anónimo que: 1. 1. 2. 3. 2. 3. 4. 5. 6. 7. 8. 9. Inserte en su tabla de bitácora de ejecución o Log: La Fecha (con hora y minutos) Una Leyenda que diga: Inicia proceso. El usuario de Base de Datos que lo ejecutó. Seleccione la cantidad de clientes (y lo asigne a una variable) y escriba (inserte) en el log: Cantidad de Clientes: xx. Que en una variable de tipo ‘Tabla de Clientes’ se asignen los valores para todos los campos de la tabla para el cliente 3. Escriba (inserte) en el log los datos con leyendas que permitan interpretar la información. Que inserte en la bitácora la leyenda ‘Eliminando datos’. Que borre la información del cliente 2. Que haga un conteo de registros asignado a una variable. Que escriba en el log la cantidad de registros. Por último que inserte la leyenda ‘Fin del Proceso’.
  20. 20. TAREA del Módulo 1 PL/SQL anónimo 4  En 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.
  21. 21. 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

×