Procedimientos almacenados
Ejemplo de SQL y procedimientos almacenados de DB2 que puede utilizar con el proveedor de datos JDBC.
call[:índice] nombreProcedimiento [argumento] ...Donde: - índice
- Un entero opcional que especifica qué conjunto de resultados debe utilizar el proveedor de datos. Este parámetro es útil cuando el procedimiento almacenado devuelve varios conjuntos de resultados y desea recopilar solo los valores de uno de los conjuntos de resultados. Si no se especifica un índice, se recopilan y devuelven datos de cada conjunto de resultados.
- nombreProcedimiento
- El nombre del procedimiento almacenado que debe ejecutar el proveedor de datos JDBC.
- argumento
- Un argumento de entrada para el procedimiento almacenado. Si hay varios argumentos, deben separarse mediante comas. Si el argumento contiene un carácter de espacio, especifique todo el argumento entre comillas. Si el argumento se puede analizar como un entero, se pasa al procedimiento almacenado como un argumento de entero. Cualquier argumento entre comillas se pasa como un argumento de cadena.
Ejemplos de SQL Server
call sp_helpdbEjecuta
el procedimiento call sp_helpdb que no requiere argumentos.
Los datos procedentes de todos los conjuntos de resultados devueltos se incluyen en los datos que devuelve el proveedor de datos.
Ejecuta
el procedimiento sp_helpdb con el argumento
maestro.
Se trata de un argumento de entrada de serie. Solo los datos procedentes del segundo conjunto de resultados que devuelve el procedimiento almacenado se incluyen en los datos que devuelve el proveedor de datos.
Si no se especifica el índice, se recopilan datos procedentes de todos los conjuntos de resultados. Debe asegurarse de que los datos devueltos en estos casos sean compatibles con los atributos definidos. Agent Builder crea atributos a partir del primer conjunto de resultados devuelto y se espera que cualquier conjunto de resultados adicional sea compatible con el primero.
Procedimiento almacenado de DB2
-- Ejecute este script de la siguiente manera:
-- db2 -td# -vf db2sample.sql
-- Procedimiento para demostrar cómo devolver una consulta desde
-- un procedimiento almacenado de DB2, que posteriormente podrá utilizar
-- un proveedor JDBC de Agent Builder. El procedimiento almacenado
-- devuelve las columnas siguientes:
-- Nombre Descripción Tipo de datos
-- current_timestamp Hora actual del sistema indicación de fecha y hora
-- lock_timeout Tiempo de espera de bloqueo escala numérica 0
-- user El usuario de la sesión Cadena de 128 caracteres
DROP procedure db2sample#
CREATE PROCEDURE db2sample()
RESULT SETS 1
LANGUAGE SQL
BEGIN ATOMIC
-- Defina la SQL para la consulta
DECLARE c1 CURSOR WITH HOLD WITH RETURN FOR
SELECT CURRENT TIMESTAMP as current_timestamp,
CURRENT LOCK TIMEOUT as lock_timeout, CURRENT USER as user
FROM sysibm.sysdummy1;
-- Envíe la consulta y devuelva los datos
OPEN c1;
END#Esta función se puede llamar desde Agent Builder utilizando la misma sintaxis definida para otros procedimientos almacenados.
En este caso, se define call db2sample como la sentencia
JDBC que debe ejecutar este procedimiento almacenado.
Procedimientos almacenados de Oracle
CREATE OR REPLACE FUNCTION ITMTEST
RETURN SYS_REFCURSOR
IS
v_rc SYS_REFCURSOR;
COMENZAR
OPEN v_rc FOR SELECT * FROM ALL_CLUSTERS;
RETURN v_rc;
END;Esta función se puede llamar desde Agent Builder utilizando la misma sintaxis definida para otros procedimientos almacenados.
En este caso, se define call ITMTEST como la sentencia
JDBC que debe ejecutar este procedimiento almacenado. Puesto que la función de Oracle debe devolver una referencia de cursor, las funciones de Oracle solo pueden procesar un conjunto de resultados. Esto significa que la opción index no recibe soporte para Oracle, ya que no hay manera de devolver varios conjuntos de resultados.