Ver Mensaje Individual
  #10 (permalink)  
Antiguo 03/06/2009, 16:01
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Problemas para desarrollar una funcion

Tu problema debe estar en como nombras las funciones y la llamada a campos.
Nunca he sido amigo de utilizar comillas en mis tablas, asi que ahí debe estar el problema.

Probé el codigo y me ha funcionado.

Código sql:
Ver original
  1. CREATE TABLE tipocomponente (
  2. ComponenteCod CHAR(12) DEFAULT ''::bpchar NOT NULL,
  3. ComponenteDscrip VARCHAR(50) DEFAULT ''::CHARACTER VARYING NOT NULL,
  4. Maximo_horas_uso BIGINT,
  5. Precio NUMERIC,
  6. FabricanteCod CHAR(10) DEFAULT ''::bpchar NOT NULL,
  7. CONSTRAINT tipocomponente_pkey PRIMARY KEY(ComponenteCod)
  8. ) WITHOUT OIDS;
  9.  
  10. INSERT INTO tipocomponente VALUES('cod1','desc1',12,25000,'codfab1');
  11. INSERT INTO tipocomponente VALUES('cod2','desc2',8,35000,'codfab2');
  12. INSERT INTO tipocomponente VALUES('cod3','desc3',15,15000,'codfab3');
  13.  
  14. CREATE OR REPLACE FUNCTION actualizar(hora BIGINT) RETURNS BOOLEAN AS
  15. $body$
  16. BEGIN
  17. UPDATE tipocomponente SET Precio = (Precio + 20) WHERE Maximo_horas_uso >= hora;
  18. RETURN TRUE;
  19. END;
  20. $body$
  21. LANGUAGE 'plpgsql'
  22.  
  23. SELECT actualizar(10);

Efectivamente, me actualiza el precio de los que tienen 12 y 15 horas sumandoles 20.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming