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:
- Cree una plantilla a partir de una plantilla existente.
- Pulse en . Aparece la ventana Preferencias.
- Expanda , y pulse Plantillas.
- 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.")
- Pulse en la plantilla y luego en Editar. Aparece la ventana Editar plantilla.
- Sustituya el nombre de la plantilla actual por el texto siguiente:
GSDB4tutorial: sentencia SEARCH de empleado básica.
- 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.
- 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 (-- #################).
- 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:
- 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.
- Pulse en Sí para crear la nueva plantilla. La plantilla se añadirá a la lista mostrada en la página Plantillas.
- Pulse en Aceptar en la ventana Preferencias
- En la vista Explorador de proyectos de datos, expanda el proyecto SPDevelopment para buscar la carpeta Procedimientos almacenados.
- Pulse con el botón derecho del ratón sobre la carpeta Procedimientos almacenados y seleccione . Se abrirá el asistente Procedimiento almacenado nuevo.
- En el campo Nombre, escriba SPEmployee.
- En el campo Idioma, seleccione SQL.
- 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.
- En el editor, realice las acciones siguientes:
- 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) )
- Elimine el punto y coma que sigue a EMP_EMPLOYEE_DIM.
- 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
- 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.