8

当我从我定义的函数运行以下命令时,我收到错误“EXECUTE of SELECT ... INTO is not implemented”。这是否意味着不允许使用特定命令(即“SELECT ...INTO”)?还是仅仅意味着我做错了什么?导致错误的实际代码如下。如果答案已经在这里,我深表歉意,但是我查看并找不到此特定错误。在此先感谢...无论如何,我正在运行 8.4.7

 vCommand = 'select ' || stmt.column_name || ' as id ' ||
            ', count(*) as nCount
            INTO tmpResults
            from ' || stmt.table_name || '
            WHERE ' || stmt.column_name || ' IN (select distinct primary_id from anyTable
                                                WHERE primary_id = ' || stmt.column_name || ')
            group by ' || stmt.column_name || ';';
EXECUTE vCommand;
4

1 回答 1

9

INTO 在这个用例中是模棱两可的,然后在那里被禁止。

您可以改用 CREATE TABLE AS SELECT。

CREATE OR REPLACE FUNCTION public.f1(表名字符不同)
 返回整数
 语言 plpgsql
作为$函数$
开始
  执行 'create temp table xx on commit drop as select * from '
                                      || 报价标识(表名);
  返回(从 xx 中选择计数(*));
结尾;
$函数$

postgres=# 选择 f1('omega');
 f1
────
  2
(1 行)
于 2013-09-06T20:51:25.723 回答