Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2011, 11:03
ALezama
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta DB2 - Store Procedure con Parametros en un Create View

Hola.

Espero que alguién pueda ayudarme con el problema que tengo.

Estoy experimentando un problema al querer crear un procedimiento almacenado en DB2 con parámetros SQL.

El procedimiento pretende crear una vista (CREATE VIEW) a partir de un SELECT que a su vez es formado por el JOIN de tres tablas. En las condiciones del SELECT debo incluir dos parámetros que son recibidos desde el llamado del procedimiento almacenado y que constituyen un rango de fechas (Fecha Inicial y Fecha Final).

He realizado pruebas de este Store Procedure con constantes de fecha y en ese caso funciona bien, sin embargo al sustituir las constantes de fecha por los parámetros, y al realizar el despliegue del procedimiento almacenado (Deployment) me da un error y nunca cataloga el procedimiento almacenado.

El error que da DB2 es el siguiente:


En ejecución
COBRANZA.SP_CREATEVIEWMOVIMIENTOSCLIENTES - Despliegue iniciado.
Crear procedimiento almacenado retornos SQLCODE: -206, SQLSTATE: 42703.
COBRANZA.SP_CREATEVIEWMOVIMIENTOSCLIENTES: 17: "FECHAINIMONITOREO" is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.61.65
"FECHAINIMONITOREO" is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.61.65
COBRANZA.SP_CREATEVIEWMOVIMIENTOSCLIENTES - Despliegue anómalo.
COBRANZA.SP_CREATEVIEWMOVIMIENTOSCLIENTES - Anulación completada satisfactoriamente.



Estoy trabajando con DB2 9.7 FixPack 2 en Windows 7 32-bit y el IBM Data Studio 2.2.


El fuente de mi procedimiento almacenado es el siguiente:


Código:
CREATE PROCEDURE SP_CreateViewMovimientosClientes  (IN FechaIniMonitoreo 	DATE ,
													IN FechaFinMonitoreo 	DATE )

SPECIFIC SP_CreateViewMovimientosClientes

P1: BEGIN
	-- ####################################################################################################
	-- # Crea la Vista de Valores de los Movimientos de los Clientes para la fecha y período monitoreado
	-- ####################################################################################################
		
		-- Elimina la Vista si ya existe
		If Exists (Select 1 From SYSIBM.SYSVIEWS Where Name = 'VIEWMOVIMIENTOSCLIENTES' and Creator = 'COBRANZA') 
			Then
	    		DROP VIEW COBRANZA.VIEWMOVIMIENTOSCLIENTES;
		End If;
		
		CREATE view COBRANZA.ViewMOVIMIENTOSCLIENTES (ClienteCod, PolizaCod, MonedaCod, RamoCod, TipoEndosoCod, EmisionEndosoNro, 
													  EmisionFecha, TipoMovimientoCod, MovPolizaNro) AS
			SELECT CLIENTES.ClienteCod, POLIZAS.PolizaCod, POLIZAS.MonedaCod, POLIZAS.RamoCod, MOVIMIENTOS.TipoEndosoCod, MOVIMIENTOS.EmisionEndosoNro, 
					MOVIMIENTOS.EmisionFecha, MOVIMIENTOS.TipoMovimientoCod, MOVIMIENTOS.MovPolizaNro	
			   FROM COBRANZA.CLIENTES AS CLIENTES JOIN COBRANZA.POLIZAS AS POLIZAS ON CLIENTES.ClienteCod = POLIZAS.ClienteCod 
							      JOIN COBRANZA.MOVIMIENTOSPOLIZAS AS MOVIMIENTOS ON MOVIMIENTOS.PolizaCod = POLIZAS.PolizaCod and 
														  							  MOVIMIENTOS.MonedaCod = POLIZAS.MonedaCod and 
			 											  							  MOVIMIENTOS.RamoCod = POLIZAS.RamoCod
			   WHERE MOVIMIENTOS.TipoMovimientoCod = 'PAG' and 
			   		 MOVIMIENTOS.MovPolizaFecha >= FechaIniMonitoreo and 
			   		 MOVIMIENTOS.MovPolizaFecha <= FechaFinMonitoreo ;
	
END P1