From: | Terry Yapt <yapt(at)technovell(dot)com> |
---|---|
To: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
Cc: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Transf |
Date: | 2009-03-20 16:02:57 |
Message-ID: | 49C3BE31.9070205@technovell.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> 2009/3/20 Terry Yapt <yapt(at)technovell(dot)com>:
>
>> Alvaro Herrera escribió:
>>
>>> Terry Yapt escribió:
>>>
>>>
>>>
>>>> Ok, tenemos la función UPPER, muy apropiada, puedo hacerlo con
>>>> TRIGGERS..... perooooo necesito crear al menos un trigger para cada nombre
>>>> de columna distinto y luego asignarlo a cada tabla.
>>>>
>>>>
>>> Podrías hacer el trigger con plperl, y pasarle el nombre de columna como
>>> argumento (durante CREATE TRIGGER).
>>>
>>>
>>>
>> Lo siento.... no conozco Perl y, lo que conozco, no me gusta demasiado.
>> Manias, supongo...... :-)
>>
>> Pl/PgSQL sería una opción ?
>>
>>
>
> con plpgsql tendrias que crear al menos un trigger por tabla, y en ese
> solo trigger cambiar a mayusculas todas las columnas que necesites en
> esa tabla
>
>
Hasta ahora, he creado una function trigger, tal que así:
DECLARE
BEGIN
NEW.nombre := sctest.f_mayusculas(NEW.nombre);
RETURN NEW;
END;
Llama a una función porque, posiblemente, quiero hacer más cosas dentro
de dicha función (seguramente quitar los acentos también). Esta es la
función:
DECLARE
cadena_out varchar := $1;
BEGIN
cadena_out := UPPER($1);
END;
Luego he asignado la function-trigger a varias tablas. Me disponia a
probar si funciona...
El problema vendrá cuando la columna a modificar, NO se llame 'nombre',
sino de otro modo...
From | Date | Subject | |
---|---|---|---|
Next Message | Emanuel Calvo Franco | 2009-03-20 16:04:09 | Re: [pgsql-es-ayuda] Transformación valor columna 'BEFORE INSERT' común... |
Previous Message | Jaime Casanova | 2009-03-20 15:58:04 | Re: Transf |