selecting table at execution with PL/PgSQL

Поиск
Список
Период
Сортировка
От Bill Nedell
Тема selecting table at execution with PL/PgSQL
Дата
Msg-id 020101c394b1$d336ebe0$6602a8c0@Slim
обсуждение исходный текст
Ответы Re: selecting table at execution with PL/PgSQL
Список pgsql-general
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;
    END LOOP;
        return ''SUCCESS'';
END;
' LANGUAGE 'plpgsql';
 
I get the following error:
 
testb=# select scrub();
INFO:  table pg_conversion
WARNING:  Error occurred while executing PL/pgSQL function scrub
WARNING:  line 8 at SQL statement
ERROR:  parser: parse error at or near "$1" at character 17
testb=#
 

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

Предыдущее
От: Cláudia Morgado
Дата:
Сообщение: Help or Bug?
Следующее
От:
Дата:
Сообщение: Difference between check and a small table