| From: | Jaime Casanova <systemguards(at)gmail(dot)com> | 
|---|---|
| To: | Felipe Amezquita <felmarla(at)gmail(dot)com> | 
| Cc: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | Re: convertir un tipo de dato.. | 
| Date: | 2006-02-04 07:06:41 | 
| Message-ID: | c2d9e70e0602032306k5560f1e1hce014b1c6bc08ab@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
On 2/3/06, Felipe Amezquita <felmarla(at)gmail(dot)com> wrote:
> que tal amigos la otra cuestion es la siguiente.
> resulta que estoy haciendo un update dinamico y declaro un valor de entrada
> varchar,pero cuando voy a introducir un valor varchar en un tipo numerico me
> sale que es de otro tipo como puedo hacer para convertir el dato en el tipo
> del campo. creo que con cast pero no me da..
> el problema es entre el campo y el valor,,
> la funcion es asi..
> actualizar_persona(in_per_codigo numeric, in_campo varchar, in_valor
> varchar)
>
> CREATE OR REPLACE FUNCTION actualizar_persona(in_per_codigo numeric,
> in_campo varchar, in_valor varchar)
>   RETURNS "varchar" AS
> $BODY$
> declare
>   cadena varchar;
>     var_valor     Varchar(100);
>
>   begin
>     var_valor := in_valor;
>     if (in_campo = 'per_fecnac') and (in_valor = '01/01/1500') then
>        var_valor := null;
>     end if;
>
>     if (in_campo = 'per_fecfall') and (in_valor = '01/01/1500') then
>        var_valor := null;
>     end if;
>
>  cadena:='update persona set
> '||in_campo||'=initcap(lower('''||var_valor||''')) where per_codigo=
> '||in_per_codigo||'';
>  execute cadena;
> return 1;
> end;
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE;
y cual es el error?
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Edwin Quijada | 2006-02-04 13:19:47 | RE: psql con windows y linux | 
| Previous Message | Alvaro Herrera | 2006-02-04 00:19:51 | Re: Iniciar postgres manualmente |