< Anterior | Siguiente >

Crear un procedimiento almacenado SQL

En este ejercicio, utilizaremos el asistente para crear un procedimiento almacenado SQL de DB2. Este procedimiento almacenado simple ofrece información de empleados procedente de la tabla EMP_EMPLOYEE_DIM cuando el ID de la organización del empleado coincide con un valor que el usuario haya entrado.

En el asistente se selecciona una plantilla que se emplea como base para el código en el procedimiento almacenado. En este ejercicio, se crea la plantilla para seleccionarla en el asistente. Para un simple procedimiento almacenado como el que ha creado en este ejercicio, por lo general utilizaría una de las plantillas básicas. No obstante, puede crear una plantilla en este ejercicio para familiarizarse con el proceso de creación de plantillas.

Cuando se crea una rutina en el entorno de trabajo, se guarda el código fuente en el entorno de trabajo del proyecto.

Para crear un procedimiento almacenado SQL:

  1. Cree una plantilla a partir de una plantilla existente.
    1. Pulse en Ventana > Preferencias. Aparece la ventana Preferencias.
    2. Expanda Gestión de datos > Desarrollo de SQL > Rutinas, y pulse Plantillas.
    3. En la página Plantillas, desplácese hasta ver la primera plantilla con el contexto db2luw_sp_sql. El nombre de esta plantilla es "Custom: You supply the SQL, return a result set." ("Personalizada: El usuario proporciona el SQL y se devuelve un conjunto de resultados.")
    4. Pulse en la plantilla y luego en Editar. Aparece la ventana Editar plantilla.
    5. Sustituya el nombre de la plantilla actual por el texto siguiente: GSDB4tutorial: sentencia SEARCH de empleado básica.
    6. Sustituya la descripción de la plantilla actual por el texto siguiente: Devolver ID, nombre y organización de todos los empleados en la tabla EMP_EMPLOYEE_DIM.
    7. En el patrón, elimine todas las líneas de comentarios que están enlazadas por las dos líneas de comentarios con signos numéricos (-- #################).
    8. Sustituya [Your SQL to execute goes here] por la siguiente sentencia SQL:
      		SELECT EMPLOYEE_CODE, FIRST_NAME,
      		       LAST_NAME, ORGANIZATION_CODE
      		  FROM EMP_EMPLOYEE_DIM;
      La plantilla terminada contiene la información siguiente:
      Captura de pantalla que muestra la ventana Editar plantilla con la plantilla terminada.
    9. Pulse en Aceptar en la ventana Editar plantilla. Un recuadro de mensaje le pide que indique si desea crear una plantilla adicional con el nuevo nombre, o bien cambiar el nombre de la plantilla actual.
    10. Pulse en para crear la nueva plantilla. La plantilla se añadirá a la lista mostrada en la página Plantillas.
    11. Pulse en Aceptar en la ventana Preferencias
  2. En la vista Explorador de proyectos de datos, expanda el proyecto SPDevelopment para buscar la carpeta Procedimientos almacenados.
  3. Pulse con el botón derecho del ratón sobre la carpeta Procedimientos almacenados y seleccione Nuevo > Procedimiento almacenado. Se abrirá el asistente Procedimiento almacenado nuevo.
  4. En el campo Nombre, escriba SPEmployee.
  5. En el campo Idioma, seleccione SQL.
  6. Seleccione la plantilla GSDB4tutorial: sentencia SEARCH de empleado básica, y pulse en Finalizar. El asistente se cierra y el procedimiento almacenado se abre en el editor de rutinas, donde puede ver y editar el código de origen

    En este punto, si ha guardado, desplegado y ejecutado el procedimiento almacenado, los resultados mostrarían todos los empleados de la tabla. No obstante, deseamos limitar los resultados solamente a aquellos empleados que están en la organización 018.

  7. En el editor, realice las acciones siguientes:
    1. Añada el parámetro de entrada org en la declaración del procedimiento, de manera que quede así:
      CREATE PROCEDURE SPEmployee ( IN org CHAR(6) )
    2. Elimine el punto y coma que sigue a EMP_EMPLOYEE_DIM.
    3. Inserte la siguiente cláusula de condición:
      WHERE ORGANIZATION_CODE = org;
    El procedimiento almacenado terminado contiene el código siguiente:
    CREATE PROCEDURE SPEmployee ( IN org CHAR(6) )
    	DYNAMIC RESULT SETS 1
    P1: BEGIN
    	-- Declarar cursor
    	DECLARE cursor1 CURSOR WITH RETURN for
    
    		SELECT EMPLOYEE_CODE, FIRST_NAME,
      		     LAST_NAME, ORGANIZATION_CODE
    		  FROM EMP_EMPLOYEE_DIM
    		    WHERE ORGANIZATION_CODE = org;
    
    	-- El cursor se ha dejado abierto para la aplicación del cliente
    	OPEN cursor1;
    END P1
  8. Guarde el procedimiento almacenado y luego cierre el editor de rutinas.

El procedimiento almacenado, SPEmployee, se muestra en la vista Explorador de proyectos de datos en la carpeta Procedimientos almacenados debajo del proyecto donde lo creó. El procedimiento almacenado está preparado para su despliegue.

< Anterior | Siguiente >

Comentarios