Upload
maria-fernanda-sanchez-lobo
View
47
Download
2
Embed Size (px)
Citation preview
AGENDA
• LA COMPRENSIÓN DE LOS BENEFICIOS Y LA ESTRUCTURA DE PL / SQL
• EXAMINAR LOS BLOQUES PL / SQL
• GENERACIÓN DE MENSAJES DE SALIDA EN PL / SQL
ACERCA DE PL / SQL
PL / SQL:
ORACLE PL SQL ES UN LENGUAJE DE PROGRAMACIÓN CREADO PORORACLE COMO UNA EXTENSIÓN DE SQL. ESTE LENGUAJE PUEDECOMBINAR LAS CONSULTAS SQL Y LAS INSTRUCCIONES DEPROCEDIMIENTOS (CONDICIONAL Y PROCESAMIENTO ITERATIVO)PARA CREAR UN TRATAMIENTO COMPLEJO Y SER ALMACENADOS ENLA BASE DE DATOS.
SQL ES UN LENGUAJE DE CONSULTA PARA LOS SISTEMAS DE BASES DEDATOS RELACIÓNALES, PERO QUE NO POSEE LA POTENCIA DE LOSLENGUAJES DE PROGRAMACIÓN. SQL ES UN LENGUAJE DECONSULTA, NO UN LENGUAJE DE PROGRAMACIÓN.
ACERCA DE PL / SQL
PL / SQL:
CUANDO SE DESEA REALIZAR UNA APLICACIÓN COMPLETA PARA ELMANEJO DE UNA BASE DE DATOS RELACIONAL, RESULTA NECESARIOUTILIZAR ALGUNA HERRAMIENTA QUE SOPORTE LA CAPACIDAD DECONSULTA DEL SQL Y LA VERSATILIDAD DE LOS LENGUAJES DEPROGRAMACIÓN TRADICIONALES. PL/SQL ES EL LENGUAJE DEPROGRAMACIÓN QUE PROPORCIONA ORACLE PARA EXTENDER ELSQL ESTÁNDAR CON OTRO TIPO DE INSTRUCCIONES.
ACERCA DE PL / SQL
PL / SQL:
SOPORTES PARA LA "EXTENSIÓN DE LENGUAJE DE PROCEDIMIENTOS DE SQL“.
¿ES EL LENGUAJE DE ACCESO DE DATOS ESTÁNDAR DE ORACLE CORPORATION PARA BASES DE DATOS RELACIONALES.
INTEGRA A LA PERFECCIÓN CON LAS CONSTRUCCIONES DE PROCEDIMIENTO SQL.
ACERCA DE PL / SQL
PL / SQL:
PROPORCIONA UNA ESTRUCTURA DE BLOQUES DE LAS UNIDADES DE CÓDIGO EJECUTABLES.EL MANTENIMIENTO DE CÓDIGO ES MÁS FÁCIL CON UNA ESTRUCTURA BIEN DEFINIDA.
PROPORCIONA CONSTRUCCIONES DE PROCEDIMIENTO, TALES COMO:• VARIABLES, CONSTANTES Y TIPOS DE DATOS• LAS ESTRUCTURAS DE CONTROL TALES COMO LAS SENTENCIAS
CONDICIONALES Y BUCLES• UNIDADES DE PROGRAMA REUTILIZABLES QUE SE ESCRIBEN UNA VEZ Y
PUEDEN SER EJECUTADOS MUCHAS VECES
ACERCA DE PL / SQL
CON PL/SQL VAMOS A PODER PROGRAMAR: PROCEDIMIENTOS ALMACENADOS
FUNCIONES
TRIGGERS
SCRIPTS
PERO ADEMÁS PL/SQL NOS PERMITE REALIZAR PROGRAMAS SOBRE LAS
SIGUIENTES HERRAMIENTAS DE ORACLE: ORACLE FORMS
ORACLE REPORTS
ORACLE GRAPHICS
ORACLE APLICATION SERVER
ACERCA DE PL / SQL
• PL/SQL NO ES CASE-SENSITIVE, ES DECIR, NO DIFERENCIA MAYÚSCULAS DE MINÚSCULAS COMO OTROS LENGUAJES DE PROGRAMACIÓN COMO C ó JAVA. SIN EMBARGO DEBEMOS RECORDAR QUE ORACLE ES CASE-SENSITIVE EN LA BÚSQUEDAS DE TEXTO.
• UNA LINEA EN PL/SQL CONTIENE GRUPOS DE CARACTERES CONOCIDOS COMO UNIDADES LEXICAS, QUE PUEDEN SER CLASIFICADAS COMO:
• DELIMITADORES • IDENTIFICADORES • LITERALES • COMENTARIOS • EXPRESIONES
ACERCA DE PL / SQLDELIMITADOR: ES UN SÍMBOLO SIMPLE O COMPUESTO QUE TIENE UNA FUNCIÓN ESPECIAL EN PL/SQL. ESTOS PUEDEN SER:
• OPERADORES ARITMETICOS • OPERADORES LOGICOS
IDENTIFICADOR: SON EMPLEADOS PARA NOMBRAR OBJETOS DE PROGRAMAS EN PL/SQL ASI COMO A UNIDADES DENTRO DEL MISMO, ESTAS UNIDADES Y OBJETOS INCLUYEN:
• CONSTANTES • CURSORES • VARIABLES • SUBPROGRAMAS • EXCEPCIONES • PAQUETES
ACERCA DE PL / SQL
•PAQUETES LITERAL: ES UN VALOR DE TIPO NUMÉRICO, CARACTER, CADENA O LÓGICO NO REPRESENTADO POR UN IDENTIFICADOR (ES UN VALOR EXPLÍCITO).
•COMENTARIO: ES UNA ACLARACIÓN QUE EL PROGRAMADOR INCLUYE EN EL CÓDIGO. SON SOPORTADOS 2 ESTILOS DE COMENTARIOS, EL DE LÍNEA SIMPLE Y DE MULTILÍNEA, PARA LO CUAL SON EMPLEADOS CIERTOS CARACTERS ESPECIALES COMO SON:
VENTAJAS DE PL / SQL
INTEGRACIÓN DE LAS CONSTRUCCIONES DE PROCEDIMIENTO CON SQL
MEJORA DEL RENDIMIENTO (RED y PROCESAMIENTO)
VENTAJAS DE PL / SQL
DESARROLLO DEL PROGRAMA MODULARIZADO. (ANIDADO)
INTEGRACIÓN CON HERRAMIENTAS DE ORACLE.
PORTABILIDAD. (CODIGO REUSABLE)
EL MANEJO DE EXCEPCIONES.
Bloque PL/SQL:
Un bloque en PL SQL es una estructura compuesta por código que debe de cumplir una serie de premisas, a continuación vemos los diferentes elementos que lo componen:
ESTRUCTURA DE UN BLOQUE PL / SQL
Nota: El ‘/ ‘ valida la transacción al ejecutar el código.
ESTRUCTURA DE UN BLOQUE PL / SQL
DECLARE (opcional)- Variables, cursores, excepciones definidas por el usuario
BEGIN (obligatorio)- Sentencias SQL- Declaraciones de PL / SQL
EXCEPTION (opcional)- Acciones a realizar cuando se producen excepciones
END; (obligatorio)
ESTRUCTURA DE UN BLOQUE PL / SQL
DONDE:•TIPO_DATO: ES EL TIPO DE DATO QUE VA A PODER ALMACENAR LA VARIABLE, ESTE PUEDE SER CUALQUIERA DE LOS TIPOS SOPORTANDOS POR ORACLE, ES DECIR NUMBER , DATE , CHAR , VARCHAR, VARCHAR2, BOOLEAN ... ADEMÁS PARA ALGUNOS TIPOS DE DATOS (NUMBER Y VARCHAR) PODEMOS ESPECIFICAR LA LONGITUD.•LA CLÁUSULA CONSTANT INDICA LA DEFINICIÓN DE UNA CONSTANTE CUYO VALOR NO PUEDE SER MODIFICADO. SE DEBE INCLUIR LA INICIALIZACIÓN DE LA CONSTANTE EN SU DECLARACIÓN.•LA CLÁUSULA NOT NULL IMPIDE QUE A UNA VARIABLE SE LE ASIGNE EL VALOR NULO, Y POR TANTO DEBE INICIALIZARSE A UN VALOR DIFERENTE DE NULL.
ESTRUCTURA DE UN BLOQUE PL / SQL
donde: LAS VARIABLES QUE NO SON INICIALIZADAS TOMAN EL VALOR INICIAL NULL. LOS TIPOS ESCALARES INCLUYEN LOS DEFINIDOS EN SQL MÁS LOS TIPOS VARCHAR Y BOOLEAN. ESTE
ÚLTIMO PUEDE TOMAR LOS VALORES TRUE, FALSE Y NULL, Y SE SUELE UTILIZAR PARA ALMACENAR ELRESULTADO DE ALGUNA OPERACIÓN LÓGICA. VARCHAR ES UN SINÓNIMO DE CHAR.
TAMBIÉN ES POSIBLE DEFINIR EL TIPO DE UNA VARIABLE O CONSTANTE, DEPENDIENDO DEL TIPO DE OTROIDENTIFICADOR, MEDIANTE LA UTILIZACIÓN DE LAS CLÁUSULAS %TYPE Y %ROWTYPE. MEDIANTE LAPRIMERA OPCIÓN SE DEFINE UNA VARIABLE O CONSTANTE ESCALAR, Y CON LA SEGUNDA SE DEFINE UNAVARIABLE FILA, DONDE IDENTIFICADOR PUEDE SER OTRA VARIABLE FILA O UNA TABLA. HABITUALMENTESE UTILIZA %TYPE PARA DEFINIR LA VARIABLE DEL MISMO TIPO QUE TENGA DEFINIDO UN CAMPO EN UNATABLA DE LA BASE DE DATOS, MIENTRAS QUE %ROWTYPE SE UTILIZA PARA DECLARAR VARIBALESUTILIZANDO CURSORES.
TIPOS DE DATOS EN PL/SQL
CADA CONSTANTE Y VARIABLE TIENE UN TIPO DE DATO EN EL CUAL SE ESPECIFICA EL FORMATO DE ALMACENAMIENTO, RESTRICCIONES Y RANGO DE VALORES VALIDOS.
PL/SQL PROPORCIONA UNA VARIEDAD PREDEFINIDA DE TIPOS DE DATOS . CASI TODOS LOS TIPOS DE DATOS MANEJADOS POR PL/SQL SON SIMILARES A LOS SOPORTADOS POR SQL. A CONTINUACIÓN SE MUESTRAN LOS TIPOS DE DATOS MÁS COMUNES:
TIPOS DE DATOS EN PL/SQL
NUMBER (NUMÉRICO): ALMACENA NÚMEROS ENTEROS O DEPUNTO FLOTANTE, VIRTUALMENTE DE CUALQUIER LONGITUD,AUNQUE PUEDE SER ESPECIFICADA LA PRECISIÓN (NÚMERO DEDIGITOS) Y LA ESCALA QUE ES LA QUE DETERMINA EL NÚMERO DEDECIMALES.
TIPOS DE DATOS EN PL/SQL
CHAR (CARACTER): ALMACENA DATOS DE TIPO CARACTER CON UNALONGITUD MAXIMA DE 32767 Y CUYO VALOR DE LONGITUD PORDEFAULT ES 1
TIPOS DE DATOS EN PL/SQL
VARCHAR2 (CARACTER DE LONGITUD VARIABLE): ALMACENA DATOSDE TIPO CARACTER EMPLEANDO SÓLO LA CANTIDAD NECESARIA AÚNCUANDO LA LONGITUD MÁXIMA SEA MAYOR.
TIPOS DE DATOS EN PL/SQL
DATE (FECHA): ALMACENA DATOS DE TIPO FECHA. LAS FECHAS SE
ALMACENAN INTERNAMENTE COMO DATOS NUMÉRICOS, POR LO QUE
ES POSIBLE REALIZAR OPERACIONES ARITMETICAS CON ELLAS.
ATRIBUTOS DE TIPO. UN ATRIBUTO DE TIPO PL/SQL ES UN
MODIFICADOR QUE PUEDE SER USADO PARA OBTENER
INFORMACIÓN DE UN OBJETO DE LA BASE DE DATOS. EL ATRIBUTO
%TYPE PERMITE CONOCER EL TIPO DE UNA VARIABLE, CONSTANTE O
CAMPO DE LA BASE DE DATOS. EL ATRIBUTO %ROWTYPE PERMITE
OBTENER LOS TIPOS DE TODOS LOS CAMPOS DE UNA TABLA DE LA
BASE DE DATOS, DE UNA VISTA O DE UN CURSOR.
AGENDA
• LA COMPRENSIÓN DE LOS BENEFICIOS Y LA ESTRUCTURA DE PL / SQL
• EXAMINAR LOS BLOQUES PL / SQL
• GENERACIÓN DE MENSAJES DE SALIDA EN PL / SQL
EJECUTANDO UN BLOQUE ANONIMO
SELECT
SINTAXIS:SELECT <LISTA>
INTO {<VARIABLE>[, <VARIABLE>, ...] | <REGISTRO>}
FROM <TABLA>
WHERE <CONDICIÓN>;
EL SELECT ALMACENARÁ LOS VALORES QUE OBTENGA EN LAS VARIABLES INDICADAS TRAS INTO Y EN EL MISMO ORDEN. ES OBLIGATORIO INCLUIR LA CLÁUSULA INTO.
EL SELECT DEBE PREPARARSE PARA QUE SÓLO DEVUELVA UNA FILA.
EJECUTANDO UN BLOQUE ANONIMO
Ejemplo:
DECLARE
v_apellidos VARCHAR2(50);
v_nombre VARCHAR2(30);
BEGIN
SELECT apellidos, nombre
INTO v_apellidos, v_nombre
FROM Empleados
WHERE id=’5’;
END;
AGENDA
• LA COMPRENSIÓN DE LOS BENEFICIOS Y LA ESTRUCTURA DE PL / SQL
• EXAMINAR LOS BLOQUES PL / SQL
• GENERACIÓN DE MENSAJES DE SALIDA EN PL / SQL
HABILITACIÓN DE SALIDA DE UN BLOQUE PL / SQL
1. Para habilitar la salida en SQL Developer, ejecute el comando siguiente antes de ejecutar el bloque PL / SQL:
2. Use un paquete predefinido de Oracle y su procedimiento en el bloque anónimo: DBMS_OUTPUT.PUT_LINE
QUIZ
UN BLOQUE PL / SQL DEBE ESTAR FORMADO POR LAS TRES SECCIONES SIGUIENTES:
UNA SECCIÓN DECLARATIVA, QUE COMIENZA CON LA PALABRA CLAVEDECLARE Y TERMINA CUANDO LA SECCIÓN EJECUTABLE COMIENZA.
UNA SECCIÓN EJECUTABLE, QUE COMIENZA CON LA PALABRA CLAVEBEGIN Y TERMINA CON END.
UNA SECCIÓN DE MANEJO DE EXCEPCIONES, QUE SE INICIA CON LAEXCEPTION PALABRA CLAVE Y ESTÁ ANIDADO DENTRO DEL EJECUTABLESECCIÓN.
1. VERDADERO 2. FALSO
RESPUESTA: 2
UN BLOQUE PL / SQL CONSTA DE TRES SECCIONES: DECLARATIVA (OPCIONAL): LA SECCIÓN DECLARATIVA OPCIONAL
COMIENZA CON LA PALABRA CLAVE DECLARE Y TERMINA CUANDO LA SECCIÓN EJECUTABLE COMIENZA.
EJECUTABLE (REQUERIDO): LA SECCIÓN EJECUTABLE REQUERIDO COMIENZA CON LA PALABRA CLAVE BEGIN Y TERMINA CON END. ESTA SECCIÓN ESENCIALMENTE TIENE QUE TENER POR LO MENOS UN COMUNICADO. OBSERVE QUE END SE TERMINA CON UN PUNTO Y COMA. LA SECCIÓN EJECUTABLE DE UN BLOQUE PL / SQL PUEDE, A SU VEZ, INCLUIR CUALQUIER NÚMERO DE BLOQUES DE PL / SQL.
EL MANEJO DE EXCEPCIONES (OPCIONAL): LA SECCIÓN EXCEPCIÓN FACULTATIVA SE ANIDA DENTRO DE LA SECCIÓN EJECUTABLE. ESTA SECCIÓN COMIENZA CON LA PALABRA CLAVE EXCEPTION.