Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Problema con un Trigger

Estas en el tema de Problema con un Trigger en el foro de PostgreSQL en Foros del Web. Hola a todos. Veréis, estoy haciendo un disparador que controla el stock de un producto. El caso es que por mucho que en la tabla ...
  #1 (permalink)  
Antiguo 23/04/2011, 11:16
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 1 mes
Puntos: 3
Exclamación Problema con un Trigger

Hola a todos.

Veréis, estoy haciendo un disparador que controla el stock de un producto. El caso es que por mucho que en la tabla sea del tipo INTEGER y en el trigger también (cuando hago el Update), me dice el siguiente error:


ERROR: la sintaxis de entrada no es válida para integer: «48.00»
CONTEXT: PL/pgSQL function "nuevo_stock" line 6 at asignación

********** Error **********

ERROR: la sintaxis de entrada no es válida para integer: «48.00»
Estado SQL:22P02
Contexto:PL/pgSQL function "nuevo_stock" line 6 at asignación

Pero por mucho que vea la function, no veo ningún error

Aquí lo tenéis:

Código PostgreSQL:
Ver original
  1. CREATE OR REPLACE FUNCTION nuevo_stock() RETURNS trigger as $$
  2. DECLARE
  3.     resultado INTEGER;
  4. BEGIN
  5.     resultado = (SELECT stock FROM producto WHERE codigo=NEW.producto) - NEW.cantidad;
  6.     UPDATE producto SET stock = resultado WHERE codigo = NEW.producto;
  7.     RETURN NEW;
  8. END;
  9. $$ LANGUAGE plpgsql;

I cuando hago INSERT respeto las comitas simples i en el caso de la cantidad no hay comitas, que es Integer (tanto en la consulta como en la tabla).

Entonces?

Saludos :)
  #2 (permalink)  
Antiguo 23/04/2011, 11:22
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con un Trigger

48.00 no es un integer... es un double precicision o un numeric.

prueba declarando resultado como numeric y no como integer.

Nos cuentas como te va

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/04/2011, 11:27
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Problema con un Trigger

Cita:
Iniciado por huesos52 Ver Mensaje
48.00 no es un integer... es un double precicision o un numeric.

prueba declarando resultado como numeric y no como integer.

Nos cuentas como te va

saludos
Vaya que si.

Después de publicar he cambiado el Integer por Float i funciona de lujo ahora

Muchas gracias!!

Etiquetas: trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:18.