PROGRAMACIÓN PL/SQL

Anuncio
Lic. Vladimir Cotaquispe Gutierrez
PROGRAMACIÓN PL/SQL
I-1
Copyright © 2008, Oracle. All rights reserved.
INTRODUCCIÓN
PL/SQL: Lenguaje de programación procedimental
estructurado en bloques que amplía el lenguaje estándar
SQL.
Permite:
• Manipular datos de una BD Oracle.
• Usar técnicas procedurales (bucles, ...)
• Permite controlar las filas de una consulta una a una
• Controlar errores (excepciones) definidas por el
usuario o propios de Oracle (predefinidos)
• Disparadores
No diferencia las minúsculas de las mayúsculas
CLIENTE == cliente
I-2
Copyright © 2008, Oracle. All rights reserved.
BLOQUES
Las únicas instrucciones permitidas dentro de un bloque
son: INSERT, UPDATE, DELETE Y SELECT +
manipulación de datos + control de transacciones.
• La anidación de bloques se realiza entre las etiquetas
BEGIN Y EXCEPTION y sólo se tiene una definición de
variables.
• Instrucciones no permitidas son: DROP, CREATE,
ALTER, …
• Los comentarios se ponen: /* Comentarios */
• No distingue mayúsculas y minúsculas
I-3
Copyright © 2008, Oracle. All rights reserved.
Estructura de un bloque PL/SQL
I-4
Copyright © 2008, Oracle. All rights reserved.
Estructura de un bloque PL/SQL
I-5
Copyright © 2008, Oracle. All rights reserved.
Tipos de bloques
I-6
Copyright © 2008, Oracle. All rights reserved.
Aplicaciones
I-7
Copyright © 2008, Oracle. All rights reserved.
Declaración de Variables
I-8
Copyright © 2008, Oracle. All rights reserved.
Asignación de Valores a Variables
I-9
Copyright © 2008, Oracle. All rights reserved.
Tipos de datos escalares
•VARCHAR2 (longitud_máxima)
• NUMBER [(precisión, escala)]
• DATE
• CHAR [(longitud_máxima)]
• LONG
• LONG RAW
• BOOLEAN
• BINARY_INTEGER
• PLS_INTEGER
I - 10
Copyright © 2008, Oracle. All rights reserved.
Declaraciones de Variables
escalares
I - 11
Copyright © 2008, Oracle. All rights reserved.
Atributo %TYPE
• Sufijo que declara una variable coincidente con:
– Una definición de una columna de la base de datos
– Otra variable previamente declarada
I - 12
Copyright © 2008, Oracle. All rights reserved.
El Paquete DBMS_OUTPUT
PL/SQL no dispone de funciones de E/S. El paquete
DBMS_OUTPUT junto con SQL ofrece la posibilidad de mostrar
mensajes en pantalla
Pasos a seguir :
• Activar la salida: SET SERVER OUTPUT {ON| OFF} [SIZE n]
n es el tamaño del buffer de salida Predeterminado 2000 bytes
Máximo 1.000.000
• Utilizar en el programa el procedimiento almacenado
DBMS_OUTPUT.PUT_LINE
Se añade el argumento al buffer de salida
I - 13
Copyright © 2008, Oracle. All rights reserved.
Algunos Procedimientos de DBMS_OUTPUT
• PUT_LINE es un procedimiento del paquete DBMS_OUTPUT
que sirve para escribir un dato (PUT) seguido de un fin de línea
(NEW_LINE).
• SET LINESIZE n, establece el tamaño de una línea en
SQL*Plus, para todas sus salidas.
• SHOW ERR, muestra los errores de compilación de un bloque
PL/SQL.
• EXEC <sentencia>, ejecuta una sentencia PL/SQL. Se puede
usar para ejecutar un procedimiento sin tener que crear un
bloque PL/SQL.
I - 14
Copyright © 2008, Oracle. All rights reserved.
Atributos de Cursor
Se utilizan para chequear la salida de las
órdenes SQL.
I - 15
Copyright © 2008, Oracle. All rights reserved.
Cursor SQL
Un cursor es un área privada de trabajo
SQL.
• Hay dos tipos de cursores:
– Implícitos
– Explícitos
• El servidor Oracle usa cursores
implícitos para analizar y ejecutar las
órdenes SQL.
• Los cursores explícitos se declaran por
el programador explícitamente.
I - 16
Copyright © 2008, Oracle. All rights reserved.
Estructuras de Control
I - 17
Copyright © 2008, Oracle. All rights reserved.
Flujo IF-THEN-ELSE
I - 18
Copyright © 2008, Oracle. All rights reserved.
Flujo IF-THEN-ELSIF
I - 19
Copyright © 2008, Oracle. All rights reserved.
Control de iteraciones
Hay tres tipos de bucles:
– Bucle básico
– Bucle FOR
– Bucle WHILE
I - 20
Copyright © 2008, Oracle. All rights reserved.
Bucle básico
I - 21
Copyright © 2008, Oracle. All rights reserved.
Bucle FOR
I - 22
Copyright © 2008, Oracle. All rights reserved.
Bucle WHILE
I - 23
Copyright © 2008, Oracle. All rights reserved.
Descargar