2. REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL P.P. PARA LA EDUCACIÓN UNIVERSITARIA
INSTITUTO UNIVERSITARIO DE TECNOLOGÍA DE LOS LLANOS
VALLE DE LA PASCUA-ESTADO GUÁRICO
PROSECUCIÓN EN INFORMÁTICA SECCION 1
Participantes
Acosta Zailuma
Aparicio Raúl
Aray Lucio
Bolívar Franklin
Cedillo Javier
González Guillermo
Gómez Alexis
Valle de la Pascua, Junio 2012
3. Introducción al PL/SQL
¿Por qué PL/SQL?
• A pesar de que SQL posee mecanismos de control condicional
(cláusula WHEN CASE) e iterativos (implícitos) en ocasiones se
requiere:
- Manipular y controlar los datos de una manera
secuencial
- Mejorar el desempeño de las aplicaciones
• Existen problemas cuya solución es más “sencilla” mediante un
lenguaje procedimental que mediante SQL “puro”
Gómez Alexis
4. Introducción al PL/SQL
• Incorporación de PSM* a SQL (1992) Incluye estructuras de
iteración, decisión y secuencia. Creación de procedimientos,
funciones etc.
• ORACLE proporciona su versión de PSM llamada PL/SQL
(Procedural Language/SQL).
En SQL Server se llama Transact SQL (T-SQL).
• En PL/SQL se pueden construir procedimientos con o sin nombre
(anónimos), funciones, disparadores y bibliotecas de funciones y
procedimientos llamadas paquetes.
*Persistent Stored Modules
Gómez Alexis
5. Instrucciones con PL / PSM
Antes de escribir código en PL / PSM se debe seguir los siguientes
consejos:
• Utilizar el estándar de codificación recomendado.
• Usar comentarios y nombres de variables claros.
• Utilizar una identación de bloque coherente.
• No escribir un procedimiento largo (máximo 50 líneas).
Zailuma Acosta
6. Hay también algunas recomendaciones adicionales para los lenguajes en general
SQL para procedimientos almacenados:
• Uso de un prefijo y un nombre de atributo calificado para evitar conflicto de
nombres de atributos y variables.
• Utilizar el control de excepciones consistentes.
• Evitar la programación ISAM – Si es posible use SQL.
• Tener cuidado acerca de los recursos – uso limitado de cursores y tablas
temporales.
• No modificar los datos de disparadores (tiggers)
• Los procedimientos deben realizar tareas concretas, no sólo encapsular los
selecciona.
Zailuma Acosta
7. Bloques PL/SQL
Un bloque PL/SQL es una pieza de código dividida en 3 secciones:
DECLARE
Sección de declaración
BEGIN
Sección ejecutable
EXCEPTION
Sección de manejo de excepciones
END;
• La sección de manejo de excepciones, así como la de declaración de variables es
opcional.
• Los bloques pueden a su vez contener otros bloques (sub-bloques)
• Los comentarios van encerrados entre /* */.
Si éstos no ocupan más de una línea, pueden escribirse después de
-- (dos guiones)
Aparicio Raúl
8. Variables y constantes
• Los tipos de datos* en PL/SQL son: NUMBER, CHAR,VARCHAR/VARCHAR2,
DATE, BOOLEAN entre otros.
• La sintaxis para declarar variables o constantes es:
nombre_vble [CONSTANT] TIPO [NOT NULL][:= expresión];
• En vez de := se puede usar DEFAULT.
• No se diferencian mayúsculas y minúsculas
* Algunos tienen precisión.
Aparicio Raúl
9. Asignación
El operador de asignación es ":=" ; mientras que el
operador lógico de igualdad es "=".
DECLARE
valor NUMBER(2) := 4;
b BOOLEAN;
materia VARCHAR(20);
nomcurso VARCHAR2(40);
falta NUMBER(1);
nro NUMBER(3);
fecha DATE;
BEGIN
nro := 5 * valor * 0.5;
b := FALSE;
materia := 'Laboratorio de';
nomcurso := materia || ' ' || 'Bases ' || 'de ' || 'Datos';
fecha := SYSDATE; --Fecha del sistema
b := 5 >= nro;
END;
Gonzales Guillermo
10. • El PL/SQL permite utilizar directamente el sublenguaje de
manipulación de datos DML del SQL, es decir: INSERT,
DELETE, UPDATE, SELECT.
• Para la utilización de sentencias DDL en PL/SQL (CREATE,
DROP, ALTER) se puede realizar así:
a) Desde la versión 7 mediante el uso del paquete: DBMS_SQL.
Ej:
Gonzales Guillermo
11. Las consultas en PL/SQL:
• Se debe proporcionar un “lugar” para guardar los datos
devueltos por una consulta (SELECT) mediante la cláusula
INTO.
• Un SELECT ... INTO debe retornar una y sólo una fila.
• Si no trae filas o trae múltiples filas ocurre un error
(excepción, se verán luego).
• Cuando se traen múltiples filas es necesario el uso de cursores
(ver luego).
Gonzales Guillermo
12. Control de Flujo
• Las comparaciones lógicas forman la base del control
condicional en PL/SQL.
Los resultados de las comparaciones siempre son verdadero
(TRUE), falso (FALSE) o nulo (NULL).
• Cualquier “cosa” comparada con NULL da como resultado
NULL (Desconocido).
• Los operadores lógicos son : >, <, =, !=, <=, >=, <>
Bolívar Frank
13. Ciclos o iteraciones
a) Ciclo simple sin límite
LOOP
<secuencia de instrucciones>
END LOOP;
Ya que es un ciclo infinito, se necesita de un
mecanismo de salida:
EXIT [WHEN <condición>];
Bolívar Frank
14. GOTO
LOOP
…
GOTO salida;
…
END LOOP;
…
<<salida>>
…
• No se puede hacer GOTO:
– Desde el exterior hacia el interior de: un ciclo, un IF o un subbloque
– Desde una excepción hacia al bloque que la contiene
Se ven luego
Aray Lucio
16. Gracias por su
atención
Nuestra recompensa se encuentra en el esfuerzo y no en el
resultado. Un esfuerzo total es una victoria completa.
Mahatma Gandhi