Hola Amigos:
Tengo problema al momento de colocar dos cursores en un mismo procedimiento almacenado.
Código SQL
[-]
CREATE PROCEDURE InsertarArticulos
@CODPROD VARCHAR(30),
@Tabla VARCHAR(15)
AS
BEGIN
DECLARE @Pais smallint,
@Local smallint,
@Sku varchar(15),
@Descripcion varchar(50),
@Precio_Regular decimal(10,2),
@Precio_Oferta decimal(10,2),
@Flag_Precio char(1),
@Enviado bit,
@Tipo_Operacion char(1)
IF @Tabla = 'MARTICULOS'
BEGIN
DECLARE CurMaestroArticulos cursor for
SELECT ITEMNMBR,
ITEMDESC
FROM IV00101
WHERE ITEMNMBR = @CODPROD
OPEN CurMaestroArticulos
WHILE @@FETCH_STATUS = 0
BEGIN
Fetch Next From CurMaestroArticulos
Into @Sku,
@Descripcion
Insert into OUT_ARTICULOS(Sku,
Descripcion)
values (@Sku,
@Descripcion)
END
CLOSE CurMaestroArticulos
DEALLOCATE CurMaestroArticulos
END
IF @TABLA = 'Precios'
BEGIN
DECLARE @PRECIOS cursor for
SELECT UOMPRICE
FROM IV00108
WHERE ITEMNMBR = @CODPROD
OPEN @PRECIOS
WHILE @@FETCH_STATUS = 0
BEGIN
Fetch Next From @PRECIOS
Into @Precio_Regular
Insert into OUT_ARTICULOS(Precio_Regular)
values (@Precio_Regular)
END
CLOSE @PRECIOS
DEALLOCATE @PRECIOS
END
END
Si yo quito todo el código que viene despues del IF Table = 'Precios', compila bien el procedimiento.
El error de compilación que sale ahora con el código de arriba es el siguiente.
Incorrect syntax near the keyword 'for'
Espero sus ayudas nuevamente amigos.
Un Saludo y Gracias por todo..