Diferència entre revisions de la pàgina «P7-Uso de cursores explícitos»

De wikiserver
Dreceres ràpides: navegació, cerca
 
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren)
Línia 11: Línia 11:
 
     for a raise”. De lo contrario, aparece el mensaje “<<last_name>> Not Due for a raise”.
 
     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:
 
   d) Pruebe el bloque PL/SQL para los siguientes casos:
     [[Fitxer:7_1.png|300px|casos]]
+
     [[Fitxer:7_1.png|500px|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.
 
'''2) A continuación, escriba un bloque PL/SQL que declare y utilice dos cursores: uno sin parámetro y otro con parámetro.
Línia 20: Línia 20:
 
'''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.'''
 
'''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
+
   a) Declare un cursor c_dept_cursor para recuperar department_id y department_name para los
    department_name para los departamentos con department_id menor que
+
    departamentos con department_id menor que 100. Ordene por department_id.
    100. Ordene por department_id.
+
   b) Declare otro cursor c_emp_cursor que tome el número de departamento como parámetro y
   b) Declare otro cursor c_emp_cursor que tome el número de departamento como
+
     recupere los siguientes datos de la tabla employees: last_name,job_id, hire_date y salary
     parámetro y recupere los siguientes datos de la tabla employees: last_name,
+
    de los empleados que trabajan en ese departamento, con employee_id menor que 120.
    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.
 
   c) Declare las variables que contienen los valores recuperados de cada cursor.
 
     Utilice el atributo %TYPE mientras declara las variables.
 
     Utilice el atributo %TYPE mientras declara las variables.
   d) Abra c_dept_cursor, utilice un bucle simple y recupere los valores en las
+
   d) Abra c_dept_cursor, utilice un bucle simple y recupere los valores en las variables
     variables declaradas. Muestre el número y el nombre de departamento. Utilice el
+
     declaradas. Muestre el número y el nombre de departamento. Utilice el atributo de cursor
    atributo de cursor adecuado para salir del bucle.
+
    adecuado para salir del bucle.
   e) Abra c_emp_cursor transfiriendo el número de departamento actual como
+
   e) Abra c_emp_cursor transfiriendo el número de departamento actual como parámetro.
     parámetro. Inicie otro bucle y recupere los valores de emp_cursor en las
+
     Inicie otro bucle y recupere los valores de emp_cursor en las variables e imprima todos
    variables e imprima todos los detalles recuperados de la tabla employees.
+
    los detalles recuperados de la tabla employees.
 
       Nota
 
       Nota
 
       • Compruebe si c_emp_cursor ya está abierto antes de abrirlo.
 
       • Compruebe si c_emp_cursor ya está abierto antes de abrirlo.
Línia 40: Línia 38:
 
       • Cuando termine el bucle, imprima una línea después de haber mostrado los
 
       • Cuando termine el bucle, imprima una línea después de haber mostrado los
 
         detalles de cada departamento y cierre c_emp_cursor.
 
         detalles de cada departamento y cierre c_emp_cursor.
   f) Termine el primer bucle y cierre c_dept_cursor. A continuación, termine la
+
   f) Termine el primer bucle y cierre c_dept_cursor. A continuación, termine la sección ejecutable.
    sección ejecutable.
 
 
   g) Ejecute el script. La salida de ejemplo es la siguiente:
 
   g) Ejecute el script. La salida de ejemplo es la siguiente:
 +
      [[Fitxer:7_2.png|500px|casos]]

Revisió de 19:14, 24 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:
    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:
      casos