Thread: Can you combine text variable together to referenece a VIEW name ?

Can you combine text variable together to referenece a VIEW name ?

From
"Bigjim"
Date:
Hi there,
I am trying to combine 2 text variable togther to form the name of a
VIEW.  example


   SELECT * FROM ( 'april'||'may') ;

I have a 12 different views and I want to be able to select a
different view depending on the contents of 2 fields in a database.

Has anyone done this before or have any ideas on how to do it ?

Thanks


Bigjim wrote:
> Hi there,
> I am trying to combine 2 text variable togther to form the name of a
> VIEW.  example
>
>
>    SELECT * FROM ( 'april'||'may') ;

The table (or view) part is not a character string but an identifier.

--
Lew

Re: Can you combine text variable together to referenece a VIEW name ?

From
Raymond O'Donnell
Date:
On 09/04/2007 00:36, Bigjim wrote:

> I am trying to combine 2 text variable togther to form the name of a
> VIEW.  example
 >
>    SELECT * FROM ( 'april'||'may') ;

I think you want to use EXECUTE from within a pl/pgsql function to
construct and execute a query dynamically - have a look at this:

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

HTH,

Ray.


---------------------------------------------------------------
Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland
rod@iol.ie
---------------------------------------------------------------

Re: Can you combine text variable together to referenece a VIEW name ?

From
Tom Lane
Date:
"Raymond O'Donnell" <rod@iol.ie> writes:
> On 09/04/2007 00:36, Bigjim wrote:
>> I am trying to combine 2 text variable togther to form the name of a
>> VIEW.  example
>> SELECT * FROM ( 'april'||'may') ;

> I think you want to use EXECUTE from within a pl/pgsql function to
> construct and execute a query dynamically - have a look at this:
> http://www.postgresql.org/docs/8.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

That's the only way to do it (modulo that you can do this in any of the
PLs not only plpgsql) ... but a more general point is that the OP is
trying to swim against the tide.  Almost certainly, rethinking the
design of those views is called for: try to merge them into one view.

            regards, tom lane