PostgreSQL 错误:执行 SELECT ... INTO 未实现

问题描述 投票:0回答:2

当我从我定义的函数运行以下命令时,收到错误“EXECUTE of SELECT ... INTO 未实现”。这是否意味着不允许使用特定命令(即“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;
postgresql user-defined-functions postgresql-8.4
2个回答
9
投票

INTO 在这个用例中是不明确的,因此被禁止。

您可以使用 CREATE TABLE AS SELECT 来代替。

创建或替换函数public.f1(表名字符不同)
 返回整数
 语言 plpgsql
作为$函数$
开始
  执行“在提交时创建临时表 xx 作为 select * from ”
                                      || quote_ident(表名);
  返回(从 xx 中选择计数(*));
结尾;
$函数$

postgres=# 选择 f1('omega');
 f1
────
  2
(1 行)

0
投票

[呃,这不是答案,而是关于答案中信息的后续问题!]

Pavel 说:“INTO 在这个用例中是不明确的,然后在那里被禁止。”,但这是什么意思以及我如何才能了解这意味着什么?任何人?谢谢,

© www.soinside.com 2019 - 2024. All rights reserved.