| 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: | Whole Thread | Raw Message | 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 |