[Pgsql-ayuda] Problema con funciones

Adrian Galindo agalindo@liceaga.facmed.unam.mx
Wed, 18 Jun 2003 16:56:14 -0500


Estoy intentando crear una funcion quitaacentos. Intent=E9 hacerlo a la=20
Oracle, donde le das el nombre de la variable con cualqueir nombre y me=20
marcaba el siguiente error:

bd=3D> CREATE FUNCTION quitaacentos (cadena) RETURNS varchar AS .... bla =

bla ....
ERROR:  Type "cadena" does not exist

Finalmente le busqu=E9 y me encontr=E9 que con cstring puedes hacer esto,=
=20
pero al manda llamar la funci=F3n, me dice esto:

ssa=3D> CREATE FUNCTION quitaacentos (cstring) RETURNS varchar AS
ssa-> 'select=20
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(R=
EPLACE(=20

ssa'> REPLACE(cstring, \'=E1\', \'a\'), \'=C1\', \'A\'),\'=E9\',\'e\'),=20
\'=C9\',\'E\'), \'=CD\', \'I\'),\'=ED\',\'i\'),
ssa'> \'=D3\', \'O\'),\'=F3\',\'o\'),\'=DA\', \'U\'),\'=FA\',\'u\'),\'=F1=
\',\'n\')'
ssa-> LANGUAGE 'plpgsql';
CREATE FUNCTION
ssa=3D> select quitaacentos('=C1lg=F3 c=F3n =E1ce=F1t=F3s');
WARNING:  plpgsql: ERROR during compile of quitaacentos near line 0
ERROR:  plpgsql functions cannot take type cstring

=BFPor d=F3nde puedo darle para solucionar esto?
Cualquier ayuda ser=E1 bien recibida.

Gracias de antemano.
Saludos.
Adri=E1n.