FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con Script SQL y la herramienta ISQL
Hola a todos, estoy intentando hacer un BATCH para pasar un procesillo SQL pero a la hora de ejecutarlo me da error.
El proceso es el siguiente: Código:
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; commit work; execute procedure BORRA_DUPLICADOS; commit work; drop procedure BORRA_DUPLICADOS; commit work; Código:
cd c:\archivos de programa\interbase corp\interbase\bin isql [base de datos] -i [fichero sql] -u SYSDBA -p password Salu2 y gracias a todos desde ya
__________________
La ignorancia es la felicidad |
#2
|
||||
|
||||
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;
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
||||
|
||||
Gracias
Muchas Gracias, ahora parece que funciona.
Me devuelve esta línea: Código:
Expected end of statement, encountered EOF Gracias
__________________
La ignorancia es la felicidad |
|
|
|