Я пытаюсь обновить таблицу, используя функцию ниже.Имя таблицы является аргументом функции.Запуск этой функции приводит к ошибке:
ERROR: syntax error at or near "$1"
LINE 1: (SELECT * FROM $1 ORDER BY $2 )
Я пытался использовать оператор EXECUTE и функцию quote_ident, но без успеха, софар.Я уверен, что я пропускаю что-то простое ...
CREATE OR REPLACE FUNCTION createdefaultorder(table_name varchar, sort_column varchar)
RETURNS integer AS
$BODY$
DECLARE
rRec RECORD;
counter integer := 0;
BEGIN
FOR rRec IN (SELECT * FROM table_name ORDER BY sort_column) LOOP
UPDATE table_name SET row_number = counter WHERE id = rRec.id;
counter := counter + 1;
END LOOP;
RETURN 0;
END;
$BODY$
LANGUAGE plpgsql;