Re: About using plpgsql funciton variable as the table

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: About using plpgsql funciton variable as the table
Дата
Msg-id 20050811090850.K97972@megazone.bigpanda.com
обсуждение исходный текст
Ответ на About using plpgsql funciton variable as the table name  (Ying Lu <ying_lu@cs.concordia.ca>)
Ответы Re: About using plpgsql funciton variable as the table  (Ying Lu <ying_lu@cs.concordia.ca>)
Список pgsql-general
On Thu, 11 Aug 2005, Ying Lu wrote:

> Greetings,
>
> I met a question about how to use *function variable *as the *table
> name* to select count(*) into an integer variable for the table.
>
>
> CREATE OR REPLACE FUNCTION update_code_map(VARCHAR, VARCHAR) RETURNS
> VARCHAR AS $$
> DECLARE
>     *tableName         ALIAS FOR $1*;
>     *rec_num             INTEGER*;
>     query_value            VARCHAR;
> BEGIN
>     -- way 1
>      query_value :=  'SELECT *INTO rec_num* COUNT(*) FROM ' || tableName
> || ' ';
>      EXECUTE query_value;
>
>      -- way 2
>       -- SELECT INTO rec_num COUNT(*) FROM tableName;
>         RAISE NOTICE 'There are % records in % table. ', rec_num,
> tableName;
>
>    RETURN 'Populate ' || tableName || ' successfully!';
> END;
> $$ LANGUAGE plpgsql;
> select update_code_map('code_map.dw_adm_dsn_map', '066');
>
>
>
> I tried way 1 & way 2 , but neither of them worked. Could someone give
> some clues?

I think you can do it with FOR IN EXECUTE with a record variable.

FOR rec IN EXECUTE <query string here> LOOP
 rec_num := rec.count;
END LOOP


В списке pgsql-general по дате отправления:

Предыдущее
От: Richard Huxton
Дата:
Сообщение: Re: About using plpgsql funciton variable as the table
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: regarding isolation between threads