RE: [pgsql-es-ayuda] cast de campo fecha en función

From: Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu>
To: Gustavo Garay <listas(at)shitech(dot)com(dot)py>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] cast de campo fecha en función
Date: 2011-04-29 15:54:13
Message-ID: 294D3D02D5E18D42827B2ECFEADEB68808FFB31F88@mx-interno.vnz.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Prueba con esto, en vez de comillas debes utilizar $$.
Saludos.

CREATE OR REPLACE FUNCTION contar_vistas_ofertas(integer)
RETURNS INTEGER AS
$$
DECLARE id ALIAS FOR $1;
contador INTEGER;

BEGIN

SELECT count(*) INTO contador FROM ofertasempleo_vistas WHERE ofeid = id AND fecha = current_date;
IF (contador > 0) THEN
UPDATE ofertasempleo_vistas SET cantidad = contador + 1 WHERE ofeid = id AND fecha = current_date;
RETURN 1;
ELSE
INSERT INTO ofertasempleo_vistas VALUES(id, 1, current_date);
RETURN 2;
END IF;
END;
$$
LANGUAGE 'plpgsql';
________________________________________
De: pgsql-es-ayuda-owner(at)postgresql(dot)org [pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Gustavo Garay [listas(at)shitech(dot)com(dot)py]
Enviado el: jueves, 28 de abril de 2011 17:15
Para: Virginia
CC: Ayuda
Asunto: Re: [pgsql-es-ayuda] cast de campo fecha en función

debes usar && como cuerpo de funcion no ' apostrofo,
ademas current_date no hace falta invocar con select
esos dos a simple vista

saludos
gustavo garay

----- Mensaje original -----
De: "Virginia" <mavir78(at)gmail(dot)com>
Para: "Ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Enviados: Jueves, 28 de Abril 2011 17:18:08
Asunto: [pgsql-es-ayuda] cast de campo fecha en función

Buenas tardes!!!
Quisiera solicitarles ayuda con lo siguiente, tengo esta función:

BEGIN;
CREATE OR REPLACE FUNCTION contar_vistas_ofertas(integer)
RETURNS INTEGER AS '
DECLARE id ALIAS FOR $1;
contador INTEGER;

BEGIN

contador = (SELECT count(*) FROM ofertasempleo_vistas WHERE ofeid = id AND fecha = (select current_date));
IF (contador > 0) THEN
UPDATE ofertasempleo_vistas SET cantidad = contador + 1 WHERE ofeid = id AND fecha = (select current_date);
RETURN(1);
ELSE
INSERT INTO ofertasempleo_vistas VALUES(id, 1, (select current_date));
RETURN(2);
END IF;
END;
' LANGUAGE 'plpgsql';
COMMIT;

pero al ejecutarla me lanza el error:

"""""You will need to rewrite or cast the expression """"""

Qué estoy haciendo mal? Cómo corrijo esto???

Gracias de antemano

-------------------------------------------
Ing. Maria Virginia Porras B.
-------------------------------------------
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ricardo Mendoza 2011-04-29 15:57:26 caso de exito db 30 millones de registros en una tabla
Previous Message Marcos Ortiz 2011-04-29 15:08:53 Re: MODIFICAR MASIVAMENTE UN CAMPO