Lists: | pgsql-es-ayuda |
---|
From: | "Victor H(dot) Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Hacer upper() y trim() automaticos |
Date: | 2005-05-09 17:40:52 |
Message-ID: | 20050509174053.7944.qmail@web51608.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola amigos, otra vez aqui.
Tengo un problema, necesito hacer los siguiente:
Una funcion pl/psql que ligada a un trigger me permita hacer upper y
trim a todas las cadenas de cualquier tabla, me explico.
Tengo una base de datos con n tablas, todas con n atributos, entonces
al momento de hacer el insert o el update la funcion ejecutada mediante
este trigger la haga upper y trim a todas los atributos que sean char,
vachar, text.
Estuve intentando hacer algo por el estilo pero en algo estoy fallando
y por eso recurro a ustedes.
Gracias por su Ayuda
---------------------------------
Do You Yahoo!?
Yahoo! Net: La mejor conexión a internet y 25MB extra a tu correo por $100 al mes.
From: | Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx> |
---|---|
To: | "Victor H(dot) Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Hacer upper() y trim() automaticos |
Date: | 2005-05-09 18:00:38 |
Message-ID: | m3r7gg9t4p.fsf@conexa.fciencias.unam.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
"Victor H. Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> 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.
From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | "Victor H(dot) Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Hacer upper() y trim() automaticos |
Date: | 2005-05-09 19:37:49 |
Message-ID: | c2d9e70e050509123761170bab@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 5/9/05, Victor H. Pinto del Carpio <kingoflinuxlake(at)yahoo(dot)com(dot)mx> wrote:
> Hola amigos, otra vez aqui.
> Tengo un problema, necesito hacer los siguiente:
> Una funcion pl/psql que ligada a un trigger me permita hacer upper y
> trim a todas las cadenas de cualquier tabla, me explico.
> Tengo una base de datos con n tablas, todas con n atributos, entonces
> al momento de hacer el insert o el update la funcion ejecutada mediante
> este trigger la haga upper y trim a todas los atributos que sean char,
> vachar, text.
> Estuve intentando hacer algo por el estilo pero en algo estoy fallando
> y por eso recurro a ustedes.
> Gracias por su Ayuda
>
Y cual es el problema con hacerlo cada vez que insertas o actualizas
en la tabla???
update tabla set campo = upper(trim(valor_campo))
where condiciones
NOTA: Trim no estoy seguro que funcione asi, la verdad no mire el
manual pero la idea es esa.
NOTA2: Lo de las mayusculas lo puedes manejar desde el cliente
controlando solo digiten mayusculas o que al digitar una letra la
convierta a mayusculas.
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From: | Milton inostroza <minoztro(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Fwd: Hacer upper() y trim() automaticos |
Date: | 2005-05-10 05:39:06 |
Message-ID: | 172699c50505092239197d5e7e@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
podías en tu código al momento de ejecutar la consulta sql realizar a
las cadenas un upper() como por ejemplo:
sql ="""
INSERT INTO afp
VALUES ('%s','%s','%s')
"""%(
self.entryNombre.get_text().upper(),
self.entryRazonSocial.get_text().upper(),
self.entryPorcentaje.get_text(),
)
self.cursor.execute(sql)
self.padre.cnx.commit()
espero ayudarte, saludos
--
Milton Inostroza Aguilera
Encargado de Auspicios y Patrocinios - 6to. Encuentro Nacional de Linux
Desarrollador de RemuneX (sistema de remuneraciones amparado bajo GPL)
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 |
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: | Alvaro Herrera <alvherre(at)surnet(dot)cl> |
---|---|
To: | "Victor H(dot) Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> |
Cc: | Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>, Lista de Correos de PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Re-pregunta Hacer upper() y trim() automaticos |
Date: | 2005-05-11 15:05:02 |
Message-ID: | 20050511150502.GA8508@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On Wed, May 11, 2005 at 09:13:49AM -0500, Victor H. Pinto del Carpio wrote:
> 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?
Hum, no puedes usar nombres de campos o tablas dinamicos en plpgsql.
Hay un ejemplo para hacer esto en pl/tcl, mira en www.varlena.com ->
general bits -> edicion 47, ultimo articulo.
--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Cuando miro a alguien, más me atrae cómo cambia que quién es" (J. Binoche)
From: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
---|---|
To: | "Victor H(dot) Pinto del Carpio" <kingoflinuxlake(at)yahoo(dot)com(dot)mx> |
Cc: | Lista de Correos de PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Re-pregunta Hacer upper() y trim() automaticos |
Date: | 2005-05-11 15:07:04 |
Message-ID: | 42821F98.7020907@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Victor H. Pinto del Carpio escribió:
> Hola amigos.
...
> nombre_columna_texto text;
....
> NEW.nombre_columna_texto := nombre_columna;
.....
> Donde estoy fallando?
Me temo que plpgsql no permite utilizar una variable como nombre de
columna, para eso tendrás que utilizar pltcl, plpython, plperl ó C
(no se si hay alguno mas).
Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************