0% encontró este documento útil (0 votos)
63 vistas4 páginas

1 - PL (Ejercicios PL - SQL)

Este documento presenta una serie de ejercicios sobre el uso de PL/SQL que incluyen escribir bloques, procedimientos, funciones y realizar consultas a bases de datos. Los ejercicios cubren temas como pasar parámetros, realizar cálculos, ordenar y filtrar datos.

Cargado por

engeldroid.jfc
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
63 vistas4 páginas

1 - PL (Ejercicios PL - SQL)

Este documento presenta una serie de ejercicios sobre el uso de PL/SQL que incluyen escribir bloques, procedimientos, funciones y realizar consultas a bases de datos. Los ejercicios cubren temas como pasar parámetros, realizar cálculos, ordenar y filtrar datos.

Cargado por

engeldroid.jfc
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ejercicios PL/SQL

1. Escribir un bloque PL/SQL que escriba el texto ‘Hola’

2. Escribir un bloque PL/SQL que cuente el número de filas que hay en la tabla cancion,
deposita el resultado en la variable v_num, y visualiza su contenido.

3. Indicar los errores que aparecen en las siguientes instrucciones y la forma de corregirlos.

DECLARE
Num1 NUMBER(8,2) := 0
Num2 NUMBER(8,2) NOT NULL DEFAULT 0;
Num3 NUMBER(8,2) NOT NULL;
Cantidad INTEGER(3);
Precio, Descuento NUMBER(6);
Num4 Num1%ROWTYPE;
Dto CONSTANT INTEGER;
BEGIN
...
END;

4. Escribir un procedimiento que reciba dos números y visualice su suma.

5. Codificar un procedimiento que reciba una cadena y la visualice al revés.

6. Escribir una función que reciba una fecha y devuelva el año, en número, correspondiente
a esa fecha.

7. Escribir un bloque PL/SQL que haga uso de la función anterior.

8. Dado el siguiente procedimiento:

CREATE OR REPLACE PROCEDURE crear_depart (


v_num_dept depart.dept_no%TYPE,
v_dnombre [Link]%TYPE DEFAULT 'PROVISIONAL',
v_loc [Link]%TYPE DEFAULT ‘PROVISIONAL’) IS
BEGIN
INSERT INTO depart
VALUES (v_num_dept, v_dnombre, v_loc);
END crear_depart;

Indicar cuáles de las siguientes llamadas son correctas y cuáles incorrectas, en este último
caso escribir la llamada correcta usando la notación posicional (en los casos que se pueda):

crear_depart; -- 1º
crear_depart(50); -- 2º

1
crear_depart('COMPRAS'); -- 3º
crear_depart(50,'COMPRAS'); -- 4º
crear_depart('COMPRAS', 50); -- 5º
crear_depart('COMPRAS', 'VALENCIA'); -- 6º
crear_depart(50, 'COMPRAS', 'VALENCIA'); -- 7º
crear_depart('COMPRAS', 50, 'VALENCIA'); -- 8º
crear_depart('VALENCIA', ‘COMPRAS’); -- 9º
crear_depart('VALENCIA', 50); -- 10º

9. Desarrollar una función que devuelva el número de años completos que hay entre dos
fechas que se pasan como argumentos.

10. Escribir una función que, haciendo uso de la función anterior devuelva los trienios que
hay entre dos fechas. (Un trienio son tres años completos).

11. Codificar un procedimiento que reciba una lista de hasta 5 números y visualice su suma.

12. Escribir una función que devuelva solamente caracteres alfabéticos sustituyendo
cualquier otro carácter por blancos a partir de una cadena que se pasará en la llamada.

13. Implementar un procedimiento que reciba un importe y visualice el desglose del cambio
en unidades monetarias de 1, 5, 10, 25, 50, 100, 200, 500, 1000, 2000, 5000 Ptas. en
orden inverso al que aparecen aquí enumeradas.

14. Codificar un procedimiento que permita borrar un empleado cuyo número se pasará en la
llamada.

Nota: El procedimiento anterior devolverá el mensaje

<< Procedimiento PL/SQL terminado con éxito >> aunque no exista el número y, por
tanto, no se borre el empleado.

15. Escribir un procedimiento que modifique la localidad de un departamento. El


procedimiento recibirá como parámetros el número del departamento y la localidad
nueva.

16. Visualizar todos los procedimientos y funciones del usuario almacenados en la base de
datos y su situación (valid o invalid).

17. Desarrollar un procedimiento que visualice el apellido y la fecha de alta de todos los
empleados ordenados por apellido.

18. Codificar un procedimiento que muestre el nombre de cada departamento y el número de


empleados que tiene.

19. Escribir un procedimiento que reciba una cadena y visualice el apellido y el número de
empleado de todos los empleados cuyo apellido contenga la cadena especificada. Al
finalizar visualizar el número de empleados mostrados.

20. Escribir un programa que visualice el apellido y el salario de los cinco empleados que
tienen el salario más alto.

2
21. Codificar un programa que visualice los dos empleados que ganan menos de cada oficio.

22. Escribir un programa que muestre, en formato similar a las rupturas de control o
secuencia vistas en SQL*plus los siguientes datos:

• Para cada empleado: apellido y salario.

• Para cada departamento: Número de empleados y suma de los salarios del


departamento.

• Al final del listado: Número total de empleados y suma de todos los salarios.

23. Desarrollar un procedimiento que permita insertar nuevos departamentos según las
siguientes especificaciones:

• Se pasará al procedimiento el nombre del departamento y la localidad.

• El procedimiento insertará la fila nueva asignando como número de departamento


la decena siguiente al número mayor de la tabla.

• Se incluirá gestión de posibles errores.

24. Escribir un procedimiento que reciba todos los datos de un nuevo empleado procese la
transacción de alta, gestionando posibles errores.

25. Codificar un procedimiento reciba como parámetros un número de departamento, un


importe y un porcentaje; y suba el salario a todos los empleados del departamento
indicado en la llamada. La subida será el porcentaje o el importe indicado en la llamada
(el que sea más beneficioso para el empleado en cada caso empleado).

26. Escribir un procedimiento que suba el sueldo de todos los empleados que ganen menos
que el salario medio de su oficio. La subida será del 50% de la diferencia entre el salario
del empleado y la media de su oficio. Se deberá asegurar que la transacción no se quede
a medias, y se gestionarán los posibles errores.

27. Diseñar una aplicación que simule un listado de liquidación de los empleados según las
siguientes especificaciones:

• - El listado tendrá el siguiente formato para cada empleado:

**********************************************************************

Liquidación del empleado:...................(1) Dpto:.................(2) Oficio:...........(3)

Salario : ............(4)

Trienios :.............(5)

Comp. Responsabil :.............(6)

Comisión :.............(7)

------------

Total :.............(8)

3
**********************************************************************

• Donde:

• 1 ,2, 3 y 4 Corresponden al apellido, departamento, oficio y salario del empleado.

• 5 Es el importe en concepto de trienios. Cada trienio son tres años completos desde
la fecha de alta hasta la de emisión y supone 5000 Ptas.

• 6 Es el complemento por responsabilidad. Será de 10000Ptas por cada empleado


que se encuentre directamente a cargo del empleado en cuestión.

• 7 Es la comisión. Los valores nulos serán sustituidos por ceros.

• 8 Suma de todos los conceptos anteriores.

• El listado irá ordenado por Apellido.

28. Crear la tabla T_liquidacion con las columnas apellido, departamento, oficio, salario,
trienios, comp_responsabilidad, comisión y total; y modificar la aplicación anterior para
que en lugar de realizar el listado directamente en pantalla, guarde los datos en la tabla.
Se controlarán todas las posibles incidencias que puedan ocurrir durante el proceso.

También podría gustarte