El 17 de junio de 2009 11:53, Dilm E.I.R.L <i.d...@yahoo.es> escribió:

> Estimados tengo la sgte funcion:
>
> CREATE OR REPLACE FUNCTION "public"."f_cobranza_update" (varchar, varchar)
> RETURNS varchar AS
> $body$
> DECLARE
>   vv_estado varchar;
> BEGIN
>   UPDATE cobranza SET estado= '2'
>    WHERE id_entidad  = $1
>      AND fec_cobro = to_date(to_char(public.f_fecha_server() ,
> 'dd/mm/yyyy'), 'dd/mm/yyyy')
>      AND flag_cobro = '0';
>      RETURN vv_estado;
> END;
> $body$
> LANGUAGE 'plpgsql'
>
> Esta funcion actualiza y hace lo que deseo, pero mi pregunta es la sgte:
>
> vv_estado varchar me devuelve vacio (es mi primera funcion con update) en
> otras ocasiones he usado funciones con select donde siempre me retorna un
> valor pero en este caso no, pero si cumple lo q deseo, lo que deseo es saber
> si esta mal lo que hago, podria devolver quizas un mensaje diciendo "Data
> Actualizada", como?
>
> Gracias
>
>
Creo que en algún momento todos necesitamos ayuda hasta en lo más básico.
Pero también creo que te falta entender ciertas cosas, como por ejemplo que
una variable va a devolverte el valor que tenga asignado, en este caso
w_estado es varchar pero no le asignaste algún otro valor, por lo tanto te
devuelve cadena vacia, si quieres obtener esa cadena, simplemente
asignasela.

CREATE OR REPLACE FUNCTION "public"."f_cobranza_update" (varchar, varchar)
RETURNS varchar AS
$body$
DECLARE
  vv_estado varchar;
BEGIN
  vv_estado = 'Data Actualizada';
  UPDATE cobranza SET estado= '2'
   WHERE id_entidad  = $1
     AND fec_cobro = to_date(to_char(public.f_fecha_server() ,
'dd/mm/yyyy'), 'dd/mm/yyyy')
     AND flag_cobro = '0';
     RETURN vv_estado;
END;
$body$
LANGUAGE 'plpgsql'

Responder a