Hola. No estoy muy versado en procedimientos sql, pero ¿has probado a
definir el mismo cursor de dos formas diferentes?:
IF @TIPO = 'A' THEN DECLARE @CONSULTA1 CURSOR FOR
SELECT a.PLACVE as A1, b.planom AS A2, COCFEI AS A3, FIDIMP AS A4
FROM adamal.tfide a inner join adamal.tplan b on a.placve =
b.placve WHERE COCFEI between @FECHAINICIAL and @FECHAFINAL and a.placve in
(select placve from adamal.tplan where platip in ('@TIPO')) ORDER
BY 1 ;
ELSE
DECLARE @CONSULTA1 CURSOR FOR
SELECT a.PLACVE as A1, b.planom AS A2, COCFEI AS A3, FIDIMP AS A4
FROM adamal.tfide a inner join adamal.tplan b on a.placve =
b.placve WHERE COCFEI between @FECHAINICIAL and @FECHAFINAL ORDER BY 1
;
END IF;
Saludos.
Fernando Pérez
Cerámica Saloni. Dpto. Organización
Juan Gutierrez Ruiz escribió:
buenos dias Foro
tengo un problema con un procedimiento almacenado, resulta que estoy declarando 2 cursores
tengo que abrir uno u otro dependiendo del parametro que le pase, si le paso el parametro @tipo como 'A' me funciona correctamente, pero si le pongo otra letra deberia de abrieme al cursor 1 pero no lo habre, tenfre algun error en el codigo , alguna sugerencia, me faltara un commit ??? o el atomic ???
(apenas me estoy metiendo en el mundo de los procedimientos almacenados)
gracias de ante mano
__________________________________________________________________________________________
CREATE PROCEDURE ADAMAL.FICHAS_DEPOSITOS (IN @FECHAINICIAL NUMERIC(8,0),
IN @FECHAFINAL NUMERIC(8,0),
IN @TIPO VARCHAR(1))
RESULT SETS 1
LANGUAGE SQL
SPECIFIC ADAMAL.FICHAS_DEPOSITOS
------------------------------------------------------------------------
-- SQL Procedimiento almacenado
------------------------------------------------------------------------
P1: BEGIN
-- Declarar cursor
DECLARE @CONSULTA1 CURSOR FOR
SELECT a.PLACVE as A1, b.planom AS A2, COCFEI AS A3, FIDIMP AS A4
FROM adamal.tfide a inner join adamal.tplan b on a.placve =
b.placve WHERE COCFEI between @FECHAINICIAL and @FECHAFINAL and a.placve in
(select placve from adamal.tplan where platip in ('@TIPO')) ORDER
BY 1 ;
DECLARE @CONSULTA2 CURSOR FOR
SELECT a.PLACVE as A1, b.planom AS A2, COCFEI AS A3, FIDIMP AS A4
FROM adamal.tfide a inner join adamal.tplan b on a.placve =
b.placve WHERE COCFEI between @FECHAINICIAL and @FECHAFINAL ORDER BY 1
;
IF @TIPO = 'A' THEN
OPEN @CONSULTA2
;
ELSE
OPEN @CONSULTA1;
END IF;
END P1
__________________________________________________________________
_________________________________________________________________
¿Te crees fan de Messenger? Compruébalo
www.vivirmessenger.com
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
|
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400