Re-pregunta Hacer upper() y trim() automaticos

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.

In response to

Responses

Browse pgsql-es-ayuda by date

  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