Re: Función que "funciona" en un servidor y en otro no.

From: "Fernando Moreno" <azazel(dot)7(at)gmail(dot)com>
To: "Pablo Braulio" <brulics(at)gmail(dot)com>
Cc: postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Función que "funciona" en un servidor y en otro no.
Date: 2008-05-06 18:53:26
Message-ID: b1c45530805061153l4a803212qd80fcc34128af423@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Creo que la respuesta está en el changelog de la versión 8.2, en la sección
PL/PgSql:

*Allow FOR statements to return values to scalars as well as records and row
types *

Me imagino que previo a esa versión, la variable a usar en el FOR tenía que
ser, como te indica el mensaje de error, RECORD o ROWTYPE. Quizás la única
solución sea modificar el código para usar record en lugar de integer,
haciéndola portable a la versión anterior.

Saludos.

2008/5/6 Pablo Braulio <brulics(at)gmail(dot)com>:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hola a todos.
>
> Tengo la siguiente función:
>
> CREATE OR REPLACE FUNCTION nuevorecurso()
> RETURNS "trigger" AS
> $BODY$
> declare
> nomgrupo integer;
> begin
> for nomgrupo in select id from gruposusuarios
> loop
> insert into permisosrecursos(grupo,recurso)
> values(nomgrupo,new.id);
> end loop;
> return new;
> end;
>
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
> La creo en mi db de mi servidor (8.2) y funciona perfectamente.
>
> Pero he hecho una copia de seguridad y restaurar en otro servidor con
> versión 8.1.11 y me da el siguiente error:
>
> ERROR: loop variable of loop over rows must be record or row variable
> en o cerca de �loop� en el car�cter 156
> LINEA 8: loop
> ^
>
> No se si se trata de un problema de la versión o que hace falta tocar
> algo en la configuración.
>
> A lo mejor es que no funciona el loop en 8.1.
>
> ¿Alguien sabe algo sobre esto?.
> - --
>
>
> < ¡¡Nos vemos!! >
> ----------------------------
> \
> \
> .::!!!!!!!:.
> .!!!!!:. .:!!!!!!!!!!!!
> ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
> :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
> $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
> $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
> ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
> "*$bd$$$$ '*$$$$$$$$$$$o+#"
> """" """""""
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFIIKVRK7lGsMchFswRAhx+AJ0VAYuvfpsSaYAOThC25KjriafaQACgtjWt
> KWDDJQ9NeQ3B7qIcKitjOUQ=
> =WTmD
> -----END PGP SIGNATURE-----
> --
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pablo Braulio 2008-05-06 18:58:15 Re: Función que "funciona" en un servidor y en otro no.
Previous Message Pablo Braulio 2008-05-06 18:37:05 Función que "funciona" en un servidor y en otro no.