Ver Mensaje Individual
  #2  
Antiguo 14-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola, tienes que cambiar los terminadores de instrucción al crear el procedimiento almacenado. (Normalmente se suele usar el signo ^). Puesto que el cuerpo del procedimiento almacenado contiene signos de ;, que confunden la ejecución del script, pensando que la siguiente instrucción solo llega hasta ese símbolo.

Código:
set term ^ ;
 
create procedure BORRA_DUPLICADOS
as
declare variable empresa smallint;
declare variable almacen varchar(3);
declare variable fecha date;
declare variable articulo varchar(15);
declare variable tipo varchar (1);
declare variable aux smallint;
begin
 
for select count(*),empresa,almacen,fecha,articulo,tipo
from art_articulos_hist_precios
group by empresa,almacen,fecha,articulo,tipo
having count(*)>1
into :aux,:empresa,:almacen,:fecha,:articulo,:tipo
do begin
 
   delete
   from art_articulos_hist_precios
   where empresa=:empresa and
   almacen=:almacen and
   articulo=:articulo and
   tipo=:tipo ;
 
end
end
^
set term ; ^
 
commit work;
 
execute procedure BORRA_DUPLICADOS;
 
commit work;
 
drop procedure BORRA_DUPLICADOS;
 
commit work;
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita