M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL T4
T4- Solución : Ineracción con Oracle Server
1) Cree un bloque PL/SQL que seleccione el identificador de departamento superior en la tabla departments y lo almacene en la variable v_max_deptno. Muestre el identificador de departamento superior.
- a) Declare una variable v_max_deptno de tipo NUMBER en la sección de declaraciones.
DECLARE v_max_deptno NUMBER;
- b) Inicie la sección ejecutable con la palabra clave BEGIN e incluya una sentencia SELECT para recuperar el valor máximo de department_id de la tabla departments.
BEGIN SELECT MAX(department_id) INTO v_max_deptno FROM departments;
- c) Muestre v_max_deptno y termine el bloque ejecutable.
DBMS_OUTPUT.PUT_LINE('The maximum department_id is : ' || v_max_deptno); END;
- d) Ejecute y guarde el script como lab_04_01_soln.sql. La salida de ejemplo es la siguiente:
2) Modifique el bloque PL/SQL creado en el paso 1 para insertar un nuevo departamento en la tabla departments.
- a) Cargue el script lab_04_01_soln.sql. Declare dos variables:
- v_dept_name de tipo departments.department_name y
- v_dept_id de tipo NUMBER
Asigne ‘Education’ a v_dept_name en la sección de declaraciones.
v_dept_name departments.department_name%TYPE:= 'Education'; v_dept_id NUMBER;
b) Ya ha recuperado el número de departamento superior actual de la tabla departments. Agréguele 10 y asigne el resultado a v_dept_id.
v_dept_id := 10 + v_max_deptno;
c) Incluya una sentencia INSERT para insertar datos en las columnas department_name, department_id y location_id de la tabla departments.
Utilice valores en dept_name y dept_id para department_name y department_id, respectivamente, y utilice NULL para location_id.
... INSERT INTO departments (department_id, department_name, location_id) VALUES (v_dept_id, v_dept_name, NULL);
d) Utilice el atributo SQL SQL%ROWCOUNT para mostrar el número de filas que se ven afectadas.
DBMS_OUTPUT.PUT_LINE (' SQL%ROWCOUNT gives ' || SQL%ROWCOUNT); ...
e) Ejecute una sentencia SELECT para comprobar si se ha insertado el nuevo departamento. Termine el bloque PL/SQL con “/” e incluya la sentencia SELECT en el script.
... / SELECT * FROM departments WHERE department_id= 280;
f) Ejecute y guarde el script como lab_04_02_soln.sql. La salida de ejemplo es la siguiente: