Re: selecting table at execution with PL/PgSQL

From: Gianni Mariani <gianni(at)mariani(dot)ws>
To: Bill Nedell <bill(at)wynde(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: selecting table at execution with PL/PgSQL
Date: 2003-10-17 21:09:18
Message-ID: 3F905A7E.2020608@mariani.ws
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Bill Nedell wrote:

> I am trying to write a PL/PgSQL function that can be given a table
> name as an argument at execution time and I don't see any way of doing
> it. I want the user to be able to specify the table dynamically when
> the function is run.
>
> As an example, if I try the following:
>
> CREATE OR REPLACE FUNCTION scrub() RETURNS VARCHAR AS '
> DECLARE
> tl pg_tables%ROWTYPE;
> BEGIN
> FOR tl IN SELECT * FROM pg_tables LOOP
> RAISE INFO ''table %'', tl.tablename;
> SELECT * FROM tl.tablename;

Try EXECUTE 'SELECT ....

where the execute parameter is created by assembling the select
statement string.

It's all in the documentation.

http://www.postgresql.org/docs/7.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN-QUERIES

In response to

Browse pgsql-general by date

  From Date Subject
Next Message elein 2003-10-17 21:24:44 Re: [GENERAL] Writers Wanted
Previous Message Oksana Yasynska 2003-10-17 20:59:58 plpgsql: return multiple result sets