Casos
• Un lenguaje de prop´sito general orientado a la inclusi´n de sentencias SQL
o
o
• Estructura del c´digo PL/SQL. Bloques:
o
DECLARE
BEGIN
sentencias PL/SQL
END;
•Los ficheros terminan con el caracter /
• Uso de SHOW ERRORS.
1
EJEMPLOS
• Un ejemplo trivial:
DECLARE
parametro NUMBER(3):=123;
BEGIN
IF parametro=123 THEN DBMS OUTPUT.PUT(’El valor es el’);
DBMS OUTPUT.PUT LINE(parametro);
ELSE DBMS OUTPUT.PUT LINE(’Hay un error.’);
END IF;
END;
• Uso de SET SERVEROUTPUT ON.
2
El Lenguaje PL/SQL
• Sentencia DECLARE:
DECLARE
numeroNUMBER(3);
fecha DATE;
cadena VARCHAR2(3);
columna codigo EMPLEADOS.CODIGO EMPLEADO%TYPE;
registro empleados EMPLEADOS%ROWTYPE;
BEGIN
sentencias PL/SQL
END;
3
Manejo de Tablas
• SELECT...INTO ...FROM ...WHERE ...;
DECLARE
codigo EMPLEADOS.CODIGO EMPLEADO%TYPE;
nombre EMPLEADOS.NOMBRE%TYPE;
primer apellido EMPLEADOS.APELLIDO1%TYPE;
segundo apellido EMPLEADOS.APELLIDO2%TYPE;
BEGINcodigo:=1;
SELECT nombre, apellido1, apellido2
INTO
nombre, primer apellido, segundo apellido
FROM
EMPLEADOS
WHERE
codigo empleado=codigo;
DBMS OUTPUT.PUT LINE(’La tupla se haleido’);
INSERT INTO LISTADO
VALUES (codigo,nombre, primer apellido, segundo apellido);
DBMS OUTPUT.PUT LINE(’La tupla se ha insertado’);
END;
4
Sentencias de Control
• Sentencia de Selecci´n
oIF condicion1 THEN ...
ELSIF condicion 2 THEN ...
ELSE condicion 3 ...
END IF;
• Sentencia LOOP:
LOOP
...
EXIT etiqueta WHEN condicion ;
...
END LOOP;
5
´
Ejemplo IteracionDECLARE
codigo EMPLEADOS.CODIGO EMPLEADO%TYPE;
nombre EMPLEADOS.NOMBRE%TYPE;
primer apellido EMPLEADOS.APELLIDO1%TYPE;
segundo apellido EMPLEADOS.APELLIDO2%TYPE;
maximo EMPLEADOS.CODIGO EMPLEADO%TYPE;BEGIN
codigo:=1;
SELECT Max(Codigo Empleado) INTO maximo FROM EMPLEADOS;
FOR indice IN 1..maximo LOOP
SELECT codigo empleado, nombre, apellido1, apellido2
INTO codigo, nombre, primer...
Regístrate para leer el documento completo.