【发布时间】:2011-10-15 05:43:35
【问题描述】:
我正在尝试创建一个引用 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) 是否有更好的方法来编写像这样引用临时表的函数?
【问题讨论】:
标签: function postgresql syntax-error execute temp-tables