Ver Mensaje Individual
  #23  
Antiguo 27-04-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Reputación: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pues sí, es necesario que tenga su clave primaria.

Bueno, mira he creado la tabla a la que le he añadido una clave primaria:

Código:
CREATE TABLE FACTURACION(   
  ID Integer NOT NULL,  <--  tú le pones la clave que te venga mejor
  ID_SUSCRIPTOR Varchar(30),
  STATUS_FACTURA Varchar(15),
  RUTA Integer,   
  NUMERO_FACTURA Integer,   
  NUMERO_FACTURA_A Varchar(30),   
  NUMERO_FACTURA_IMPRESA Integer,   
  etc...   
  ...
Luego he creado el procedimiento almacenado (para simplificar he dejado la primera parte):

Código:
CREATE PROCEDURE ACTUALIZAR (
  X_TIPO_TARIFA Varchar(30),     
  X_TIPO_FACTURA Varchar(10),     
  X_MES Integer,     
  X_YEAR Integer ) 
AS begin   
  update facturacion   
  set base_imponible = cloaca   
  where tipo_tarifa= :x_tipo_tarifa    
  and tipo_factura= :x_tipo_factura    
  and extract(month from fecha)= :x_mes    
  and extract(year from fecha)= :x_year;    

  etc...     
  /* por cierto, el "suspend" aquí no sirve para nada */  
end
Y seguidamente lo he ejecutado desde el ibexpert... mentira, estoy usando el flamerobin, pero es lo mismo:

Código:
execute procedure ACTUALIZAR("Residencial","Consumo",1,2010)
Lo he nombrado ACTUALIZAR porque UPDATE puede malinterpretarse con la sentencia "UPDATE".

Y el resultado es, como se supone, correcto:

Responder Con Cita