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'