Re: don't know how to get SELECT - Mailing list pgsql-general

From Darren Ferguson
Subject Re: don't know how to get SELECT
Date
Msg-id Pine.LNX.4.10.10205131348470.8555-100000@thread.crystalballinc.com
Whole thread Raw
In response to don't know how to get SELECT  (Uros Gruber <uros@sir-mag.com>)
List pgsql-general
Use the EXECUTE command.

This allows the execution of dynamic queries

EXECUTE ''UPDATE ''||table||'' SET id = ''||id||''WHERE something =
something'';

This is just an example but it shows how to execute dynamic queries

HTH

Darren Ferguson

On Mon, 13 May 2002, Uros Gruber wrote:

> Hi!
>
> i have some problems with plpgsql. Here is my function
>
>
> create or replace function rm_cat(varchar,int) returns boolean as '
> declare
>         table alias for $1;
>         id    alias for $2;
>         data   RECORD;
> begin
>       ******************************************************************
>        SELECT INTO data lft,rgt FROM d_categories WHERE id_category=id;
>        ******************************************************************
>       IF NOT FOUND THEN
>               RAISE EXCEPTION ''id % does not exist'',id;
>               return 0;
>       end if;
>
>       -- deleting the leftmost node does not lower lft for all
>          execute ''update '' || quote_ident(table) || '' set level=level-1 where lft > ''  || data.lft || ''and rgt <
''|| data.rgt || '';''; 
>          execute ''update '' || quote_ident(table) || '' set lft=lft-1 where lft >= '' || data.lft || '';'';
>          execute ''update '' || quote_ident(table) || '' set lft=lft-1 where lft >= '' || data.rgt || '';'';
>          execute ''update '' || quote_ident(table) || '' set rgt=rgt-1 where rgt >= '' || data.lft || '';'';
>          execute ''update '' || quote_ident(table) || '' set rgt=rgt-1 where rgt >= '' || data.rgt || '';'';
>          execute ''delete from '' || quote_ident(table) || '' where id_category = '' || id || '';'';
>       return 1;
> end;
> 'language 'plpgsql';
>
>
> My problems is in line wraped with ***. What i want is that
> SELECT have to be dinamyc because i want with an argument to
> saj for what table do this select. I tried many ways and i
> think i don't understand something. Can somebody help me
> solve this.
>
>
>
> --
> bye,
>  Uros                          mailto:uros.gruber@sir-mag.com
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>


pgsql-general by date:

Previous
From: "Marc G. Fournier"
Date:
Subject: Re: jobs.postgresql.org - Who's interested?
Next
From: Varun Kacholia
Date:
Subject: slow INSERTS :((