Diferència entre revisions de la pàgina «P7-Uso de cursores explícitos»
De wikiserver
| Línia 12: | Línia 12: | ||
d) Pruebe el bloque PL/SQL para los siguientes casos: | d) Pruebe el bloque PL/SQL para los siguientes casos: | ||
[[Fitxer:7_1.png|300px|casos]] | [[Fitxer:7_1.png|300px|casos]] | ||
| + | |||
| + | 2) A continuación, escriba un bloque PL/SQL que declare y utilice dos cursores: uno sin parámetro y otro con parámetro. El primer cursor recupera el número de departamento y el nombre del departamento de la tabla departments para todos los departamentos cuyos números de identificador sean menores que 100. El segundo cursor recibe el número de departamento como parámetro y recupera los detalles de los empleados que trabajan en ese departamento y cuyo employee_id sea menor que 120. | ||
| + | a) Declare un cursor c_dept_cursor para recuperar department_id y | ||
| + | department_name para los departamentos con department_id menor que | ||
| + | 100. Ordene por department_id. | ||
| + | b) Declare otro cursor c_emp_cursor que tome el número de departamento como | ||
| + | parámetro y recupere los siguientes datos de la tabla employees: last_name, | ||
| + | job_id, hire_date y salary de los empleados que trabajan en ese | ||
| + | departamento, con employee_id menor que 120. | ||
| + | c) Declare las variables que contienen los valores recuperados de cada cursor. | ||
| + | Utilice el atributo %TYPE mientras declara las variables. | ||
| + | d) Abra c_dept_cursor, utilice un bucle simple y recupere los valores en las | ||
| + | variables declaradas. Muestre el número y el nombre de departamento. Utilice el | ||
| + | atributo de cursor adecuado para salir del bucle. | ||
| + | e) Abra c_emp_cursor transfiriendo el número de departamento actual como | ||
| + | parámetro. Inicie otro bucle y recupere los valores de emp_cursor en las | ||
| + | variables e imprima todos los detalles recuperados de la tabla employees. | ||
| + | Nota | ||
| + | • Compruebe si c_emp_cursor ya está abierto antes de abrirlo. | ||
| + | • Utilice el atributo de cursor adecuado para la condición de salida. | ||
| + | • Cuando termine el bucle, imprima una línea después de haber mostrado los | ||
| + | detalles de cada departamento y cierre c_emp_cursor. | ||
| + | f) Termine el primer bucle y cierre c_dept_cursor. A continuación, termine la | ||
| + | sección ejecutable. | ||
| + | g) Ejecute el script. La salida de ejemplo es la siguiente: | ||
Revisió del 17:53, 10 nov 2014
1) Cree un bloque PL/SQL que realice las siguientes acciones:
a) En la sección de declaraciones, declare e inicialice una variable llamada
v_deptno de tipo NUMBER. Asigne un valor de identificador de departamento
válido (consulte los valores en la tabla del paso d).
b) Declare un cursor llamado c_emp_cursor, que recupere last_name,
salary y manager_id de los empleados que trabajan en el departamento
especificado en v_deptno.
c) En la sección ejecutable, utilice el bucle FOR de cursor para realizar operaciones
en los datos recuperados. Si el salario del empleado es menor que 5.000 y si el
identificador de superior es 101 o 124, aparece el mensaje “<<last_name>> Due
for a raise”. De lo contrario, aparece el mensaje “<<last_name>> Not Due for a raise”.
d) Pruebe el bloque PL/SQL para los siguientes casos:
2) A continuación, escriba un bloque PL/SQL que declare y utilice dos cursores: uno sin parámetro y otro con parámetro. El primer cursor recupera el número de departamento y el nombre del departamento de la tabla departments para todos los departamentos cuyos números de identificador sean menores que 100. El segundo cursor recibe el número de departamento como parámetro y recupera los detalles de los empleados que trabajan en ese departamento y cuyo employee_id sea menor que 120.
a) Declare un cursor c_dept_cursor para recuperar department_id y
department_name para los departamentos con department_id menor que
100. Ordene por department_id.
b) Declare otro cursor c_emp_cursor que tome el número de departamento como
parámetro y recupere los siguientes datos de la tabla employees: last_name,
job_id, hire_date y salary de los empleados que trabajan en ese
departamento, con employee_id menor que 120.
c) Declare las variables que contienen los valores recuperados de cada cursor.
Utilice el atributo %TYPE mientras declara las variables.
d) Abra c_dept_cursor, utilice un bucle simple y recupere los valores en las
variables declaradas. Muestre el número y el nombre de departamento. Utilice el
atributo de cursor adecuado para salir del bucle.
e) Abra c_emp_cursor transfiriendo el número de departamento actual como
parámetro. Inicie otro bucle y recupere los valores de emp_cursor en las
variables e imprima todos los detalles recuperados de la tabla employees.
Nota
• Compruebe si c_emp_cursor ya está abierto antes de abrirlo.
• Utilice el atributo de cursor adecuado para la condición de salida.
• Cuando termine el bucle, imprima una línea después de haber mostrado los
detalles de cada departamento y cierre c_emp_cursor.
f) Termine el primer bucle y cierre c_dept_cursor. A continuación, termine la
sección ejecutable.
g) Ejecute el script. La salida de ejemplo es la siguiente: