Efectivamente, está mal el tipo que devuelve la función!!! Se me pasó por alto, al cambiar lo que devolvía el select. Muchas gracias!!!!
ANA -----Mensaje original----- De: [email protected] [mailto:[email protected]] En nombre de Rafael Martinez Enviado el: martes, 22 de noviembre de 2011 10:42 a.m. Para: Ana Claudia Smail CC: [email protected] Asunto: Re: [pgsql-es-ayuda] consulta función -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 11/22/2011 02:15 PM, Ana Claudia Smail wrote: > Hola a todos! > > Estoy teniendo un problema con una función en progresql 8.4: > > CREATE OR REPLACE FUNCTION getLibres(varchar(20), varchar(20)) RETURNS > SETOF tabla1 AS > [.......] > Cuando ejecuto SELECT * FROM getLibres('campo1',NULL); > > Me tira el siguiente error: > > ERROR: la sintaxis de entrada no es válida para integer: «campo1» > > CONTEXT: PL/pgSQL function "getlibres" line 5 at bucle FOR en torno a > registros de un SELECT > Hola El problema es que has definido la funcion con "RETURNS SETOF tabla1" y no estas devolviendo un set de la tabla "tabla1". Devuelves VARCHAR(255),COUNT(*). No mandas la definicion de la tabla "tabla1", pero probablemente la primera columna de esta tabla es "campo1"(integer) y tu funcion esta devolviendo como primera columna un varchar. Para arreglar esto tendrias que definir un nuevo tipo (TYPE) [1] con VARCHAR(255),INTEGER y cambiar la definicion de la funcion para que devuelva un SETOF de este tipo y no de la tabla "tabla1". [1] http://www.postgresql.org/docs/9.1/interactive/sql-createtype.html - -- Rafael Martinez Guerrero Center for Information Technology University of Oslo, Norway PGP Public Key: http://folk.uio.no/rafael/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk7LppQACgkQBhuKQurGihTXyQCcC22Y/+HjkDvS7/DMCLBCYlyO 3f0An0oBO42H0d3T9+supyNJWx7ASUWf =hYZE -----END PGP SIGNATURE----- - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
