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)
>
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. |