From: | "Victor H(dot) Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> |
---|---|
To: | Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx> |
Cc: | Lista de Correos de PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re-pregunta Hacer upper() y trim() automaticos |
Date: | 2005-05-11 14:13:49 |
Message-ID: | 20050511141349.18584.qmail@web51601.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola amigos.
Hare mejor mi consulta:
Tengo la relacion:
create table categorias(
idcategoria int primary key,
nombrecategoria varchar(50),
descripcion text);
Tengo esta funcion:
create or replace function insertar() returns trigger as
$body$
declare
tabla record;
tabla_texto text;
nombre_columna record;
nombre_columna_texto text;
tipo_columna text;
begin
for tabla in select c.table_name from information_schema.columns c where c.table_Schema = 'public' group by c.table_name order by c.table_name loop
tabla_texto :=tabla;
for nombre_columna in select a.column_name from information_schema.columns a where a.table_Schema = 'public' and a.table_name = tabla_texto loop
nombre_columna_texto :=nombre_columna;
select b.udt_name into tipo_columna from information_schema.columns b where b.table_Schema = 'public' and b.column_name = nombre_columna and b.table_name = tabla_texto;
if tipo_columna = 'varchar' then
NEW.nombre_columna_texto := upper(trim(nombre_columna));
else
if tipo_columna = 'text' then
NEW.nombre_columna_texto := upper(trim(nombre_columna));
else
NEW.nombre_columna_texto := nombre_columna;
end if;
end if;
end loop;
end loop;
return NEW;
end;
$body$
language 'plpgsql';
este trigger
create trigger insert_tupla
before insert or update on categorias
for each row execute procedure insertar();
y ejecuto este comando
insert into categorias idcategoria,nombrecategoria,descripcion values(1,'Tacos','Sin picante')
supuestamente cada vez que ingrese o actualice una tupla como la del insert anterior, el trigger dispara la funcion y esta ubicará todos los atributos de tipo varchar o text y les aplica upper() y trim(), pero a la hora de ejecutarla no funciona, simplemente agrega la tupla sin ninguna modificacion.
Donde estoy fallando?
Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx> escribió:
"Victor H. Pinto del Carpio" writes:
> Estuve intentando hacer algo por el estilo pero en algo estoy fallando
> y por eso recurro a ustedes.
Aguarda un momento, dejame sintonizo mi bolita mágica, uhm, no, creo
que hay mucha interferencia, nomás no logro captar nada. Ni modo,
tendremos que hacerlo de la forma tradicional: ¿podrías mandarnos más
detalles de que esta fallando?
Saludos,
Manuel.
---------------------------(fin del mensaje)---------------------------
TIP 1: para suscribirte y desuscribirte, escribe a majordomo(at)postgresql(dot)org
VICTOR H. PINTO DEL CARPIO
JEFE DE DESARROLLO
____________________________________________
TRHEX S.R.L.
---------------------------------
Do You Yahoo!?
Yahoo! Net: La mejor conexión a internet y 25MB extra a tu correo por $100 al mes.
From | Date | Subject | |
---|---|---|---|
Next Message | Grover Navia | 2005-05-11 14:24:09 | Control de acceso a tablas |
Previous Message | Alvaro Herrera | 2005-05-11 13:18:18 | Re: funcion con plpgsql |