cursor question

Lists: pgsql-general
From: Andreas Wenk <a(dot)wenk(at)netzmeister-st-pauli(dot)de>
To: "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org>
Subject: cursor question
Date: 2009-02-25 15:53:22
Message-ID: 49A56972.3090709@netzmeister-st-pauli.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

short question. Why is this not possible:

CREATE OR REPLACE FUNCTION user_cursor_open(text) RETURNS refcursor AS $$
DECLARE
curs1 CURSOR FOR SELECT * FROM $1;
BEGIN
OPEN curs1;
RETURN curs1;
END; $$ LANGUAGE plpgsql;

Or, how do I set a parameter when using cursor?

Thanks in advance

- --
St.Pauli - Hamburg - Germany

Andreas Wenk

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJpWlyVa7znmSP9AwRAv2MAJ9jHICtLeIEv+QVzeqBWSkheXDmpgCgwMUH
t0/HWRPsx56jGhSVUQXyb9I=
=XMXi
-----END PGP SIGNATURE-----


From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Andreas Wenk <a(dot)wenk(at)netzmeister-st-pauli(dot)de>
Cc: "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org>
Subject: Re: cursor question
Date: 2009-02-25 16:18:26
Message-ID: 162867790902250818h1b75336exb939e3e3bf593593@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Hello

when you would to change name of table - you have to use dynamic query

38.7.2.2. OPEN FOR EXECUTE

OPEN unbound_cursor [ [ NO ] SCROLL ] FOR EXECUTE query_string;

http://www.postgresql.org/docs/8.3/interactive/plpgsql-cursors.html

regards
Pavel Stehule

2009/2/25 Andreas Wenk <a(dot)wenk(at)netzmeister-st-pauli(dot)de>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi,
>
> short question. Why is this not possible:
>
> CREATE OR REPLACE FUNCTION user_cursor_open(text) RETURNS refcursor AS $$
> DECLARE
>        curs1 CURSOR FOR SELECT * FROM $1;
> BEGIN
>        OPEN curs1;
>        RETURN curs1;
> END; $$ LANGUAGE plpgsql;
>
> Or, how do I set a parameter when using cursor?
>
> Thanks in advance
>
> - --
> St.Pauli - Hamburg - Germany
>
> Andreas Wenk
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFJpWlyVa7znmSP9AwRAv2MAJ9jHICtLeIEv+QVzeqBWSkheXDmpgCgwMUH
> t0/HWRPsx56jGhSVUQXyb9I=
> =XMXi
> -----END PGP SIGNATURE-----
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>


From: Andreas Wenk <a(dot)wenk(at)netzmeister-st-pauli(dot)de>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org>
Subject: Re: cursor question
Date: 2009-02-25 17:51:51
Message-ID: 49A58537.6020608@netzmeister-st-pauli.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pavel Stehule schrieb:
> Hello
>
> when you would to change name of table - you have to use dynamic query
>
> 38.7.2.2. OPEN FOR EXECUTE
>
> OPEN unbound_cursor [ [ NO ] SCROLL ] FOR EXECUTE query_string;
>
>
> http://www.postgresql.org/docs/8.3/interactive/plpgsql-cursors.html
>
> regards
> Pavel Stehule

Hi Pavel,

thanks a lot. It works for me like this:

CREATE OR REPLACE FUNCTION user_cursor_test(refcursor,text) RETURNS refcursor AS $$
BEGIN
OPEN $1 FOR EXECUTE 'SELECT name FROM ' || $2;
RETURN $1;
END; $$ LANGUAGE plpgsql;

Cheers

Andy

> 2009/2/25 Andreas Wenk <a(dot)wenk(at)netzmeister-st-pauli(dot)de>:
> Hi,
>
> short question. Why is this not possible:
>
> CREATE OR REPLACE FUNCTION user_cursor_open(text) RETURNS refcursor AS $$
> DECLARE
> curs1 CURSOR FOR SELECT * FROM $1;
> BEGIN
> OPEN curs1;
> RETURN curs1;
> END; $$ LANGUAGE plpgsql;
>
> Or, how do I set a parameter when using cursor?
>
> Thanks in advance
>
>>
- --
Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
>>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJpYU2Va7znmSP9AwRAgGAAJ9En2TEupu7t994DIxi9ql5LH5sXACdHIi1
jNiaLX2mEmYWRxHDcGavbsM=
=XUcF
-----END PGP SIGNATURE-----