From: | Felipe Amezquita <felmarla(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | convertir un tipo de dato en otro |
Date: | 2006-02-06 14:34:15 |
Message-ID: | bf4cfe570602060634l638ace97q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Bueno lista resulta que tengo una funcion de actualizacion dinamica.
El cuento es el siguiente,resulta que el vallor que se manda por parametro
es de tipo varchar y cuando se quiera actualizar un campo tipo numeric
presenta el siguiente error
PgAURORA=# select actualizar_persona(0,'sexo_codigo','1');
ERROR: column "sexo_codigo" is of type numeric but expression is of type
text
HINT: You will need to rewrite or cast the expression.
como puedo convertir es decir una especie de cast antes de hacer el
update,recuerden que la funcion es dinamica
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;
gracias lista
--
Ing Sistemas y Telecomunicaciones
Luis Felipe Lopez Amezquita
3008217523 - 3162589699
From | Date | Subject | |
---|---|---|---|
Next Message | Sistemas C.M.P. | 2006-02-06 16:23:39 | Problema con Crystal |
Previous Message | Alvaro Herrera | 2006-02-06 14:14:41 | Re: Busqueda con FULLTEXT en Postgresql |