Я пытаюсь создать функцию, которая ссылается на временную таблицу в PostgreSQL 8.4.Исходя из моих исследований, мне кажется, что лучший способ сделать это - использовать команду EXECUTE
для выполнения моего запроса из определенной строки.
К сожалению, при попытке создать функцию я получаю странную синтаксическую ошибку.
Мое текущее определение функции выглядит следующим образом:
CREATE OR REPLACE FUNCTION example() RETURNS void AS $$
EXECUTE 'INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3 from temp_table';
$$ LANGUAGE SQL;
Я получаю ошибку:
ERROR: syntax error at or near "'INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3 from temp_table'"
LINE 2: execute 'INSERT INTO table1 (col1, col2, col3) SELECT col1...
Кажется, я получаю одну и ту же ошибку независимо от того, чтона самом деле находится в строковом литерале.
Мои вопросы: 1) каков правильный синтаксис для использования функции EXECUTE, и 2) есть ли лучший способ написать такую функцию, которая ссылается на временную таблицу?