Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Funciones y Prcedimientos PDF
Funciones y Prcedimientos PDF
1. Procedimientos y
funciones
1.1 Definición
1.2 Llamadas
Funciones, procedimientos,
1.3 Documenta-
ción
1.4 Depuración
2. Secuencias
secuencias y cursores en
2.1 Definición
3. Cursores
3.1 Bucle FOR
Oracle
3.2 Atributos
4. Ejercicios
5. Scripts
1. Procedimientos y
que se almacenan en la base de datos. Estos objetos
funciones
1.1 Definición
procedurales son unidades de programa PL/SQL:
1.2 Llamadas
1.3 Documenta-
Funciones y Procedimientos almacenados.
ción
1.4 Depuración
2. Secuencias
2.1 Definición • Los procedimientos o funciones son bloques PL/SQL con
3. Cursores
3.1 Bucle FOR nombre, que pueden recibir parámetros y pueden ser
3.2 Atributos
4. Ejercicios
invocados desde distintos entornos: SQL*PLUS,
5. Scripts
Oracle*Forms, desde otros procedimientos y funciones y
desde otras herramientas Oracle y aplicaciones.
Procedimientos y funciones
Procedimientos y Funciones
Descripción de la sintaxis:
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes • Nombre-parámetro: es el nombre que queramos dar al
y Sistemas Informáticos
parámetro. Podemos utilizar múltiples parámetros. En caso de
1. Procedimientos y
funciones no necesitarlos, podemos omitir los paréntesis.
1.1 Definición
1.2 Llamadas • IN: especifica que el parámetro es de entrada y que por tanto
1.3 Documenta-
ción
dicho parámetro tiene que tener un valor en el momento de
1.4 Depuración llamar a la función o procedimiento. Si no se especifica nada,
2. Secuencias
2.1 Definición los parámetros son por defecto de tipo entrada.
3. Cursores
3.1 Bucle FOR • OUT: especifica que se trata de un parámetro de salida. Son
3.2 Atributos
parámetros cuyo valor es devuelto después de la ejecución el
4. Ejercicios
5. Scripts procedimiento al bloque PL/SQL que lo llamó. Las funciones
PLSQL no admiten parámetros de salida.
• IN OUT: Son parámetros de entrada y salida a la vez.
• Tipo-de-dato: Indica el tipo de dato PLSQL que corresponde al
parámetro (NUMBER, VARCHAR2, etc).
© Diseño de Amador Durán Toro, 2011
Procedimientos y funciones
Procedimientos y funciones
Procedimientos y funciones
Secuencias
Secuencias
VALUES (sec_emp.CURRVAL,..)
Cursores
1. Procedimientos y
DECLARE
funciones
1.1 Definición CURSOR cursor_1 IS
1.2 Llamadas
1.3 Documenta-
SELECT nombre, número, salario
ción
1.4 Depuración FROM emp ORDER BY salario;
2. Secuencias
2.1 Definición w_nombre emp.nombre%TYPE;
3. Cursores
3.1 Bucle FOR
w_número emp.número%TYPE;
3.2 Atributos
4. Ejercicios
w_salar io emp.salario%TYPE;
5. Scripts
BEGIN
OPEN cursor_1;
FETCH cursor_1 INTO w_nombre, w_número, w_salario;
...
CLOSE cursor_1;
© Diseño de Amador Durán Toro, 2011
END;
Cursores
END;
Cursores
Ejercicio 2
Escuela Técnica Superior • Crear una función para calcular el sueldo total de
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos un empleado pasado como parámetro. Tenga en
1. Procedimientos y
funciones
1.1 Definición
cuenta que hay que añadir la comisión (que es un
1.2 Llamadas
1.3 Documenta-
porcentaje adicional del salario) al salario.
ción
1.4 Depuración
2. Secuencias
2.1 Definición
3. Cursores
3.1 Bucle FOR
• Es posible también llamar a la función desde un
3.2 Atributos
4. Ejercicios bloque PL/SQL: Genere un bloque PL/SQL
5. Scripts
Ejercicio 4
1. Procedimientos y
subordinados
funciones
1.1 Definición
1.2 Llamadas
1.3 Documenta-
ción
1.4 Depuración
2. Secuencias
2.1 Definición
3. Cursores
3.1 Bucle FOR
3.2 Atributos
4. Ejercicios
5. Scripts
© Diseño de Amador Durán Toro, 2011
'||obtener_salario(1));
END;
/
Script ejercicios 4
--
1. Procedimientos y
funciones DECLARE
1.1 Definición wjefe CHAR(4);
1.2 Llamadas wcount INTEGER;
1.3 Documenta- CURSOR c IS SELECT cojefe,count(*) AS cuenta FROM empleados
ción
1.4 Depuración
GROUP BY cojefe ORDER BY 2 DESC;
2. Secuencias
fila c%ROWTYPE;
2.1 Definición BEGIN
3. Cursores DBMS_OUTPUT.PUT_LINE('Prueba de cursor (3 superjefes) con
3.1 Bucle FOR Open/Fetch/Close ** BUCLE NORMAL');
3.2 Atributos OPEN c;
4. Ejercicios LOOP
5. Scripts
FETCH c INTO fila;
EXIT WHEN C%NOTFOUND OR c%ROWCOUNT >3;
DBMS_OUTPUT.PUT_LINE(fila.cojefe||' '||fila.cuenta);
END LOOP;
CLOSE c;
END;
/
Script ejercicios 4
--
Escuela Técnica Superior -- Procedimientos anónimos para obtener los tres empleados con más subordinados
de Ingeniería Informática
Departamento de Lenguajes con bucle while
y Sistemas Informáticos
1. Procedimientos y DECLARE
funciones
wjefe CHAR(4);
1.1 Definición
wcount INTEGER;
1.2 Llamadas
1.3 Documenta-
CURSOR c IS
ción SELECT cojefe,count(*) AS cuenta FROM empleados
1.4 Depuración GROUP BY cojefe ORDER BY 2 DESC;
2. Secuencias fila c%ROWTYPE;
2.1 Definición
BEGIN
3. Cursores
DBMS_OUTPUT.PUT_LINE('Prueba de cursor (3 superjefes) con
3.1 Bucle FOR
3.2 Atributos
Open/Fetch/Close ** BUCLE WHILE');
4. Ejercicios
OPEN c;
5. Scripts WHILE c%ROWCOUNT<3 LOOP
FETCH c INTO fila;
EXIT WHEN C%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(fila.cojefe||' '||fila.cuenta);
END LOOP;
CLOSE c;
END;
/
© Diseño de Amador Durán Toro, 2011