Jaime Casanova escribió:
2009/3/20 Terry Yapt <[email protected]>:
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...
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán

Responder a