当我从我定义的函数运行以下命令时,收到错误“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;
INTO 在这个用例中是不明确的,因此被禁止。
您可以使用 CREATE TABLE AS SELECT 来代替。
创建或替换函数public.f1(表名字符不同) 返回整数 语言 plpgsql 作为$函数$ 开始 执行“在提交时创建临时表 xx 作为 select * from ” || quote_ident(表名); 返回(从 xx 中选择计数(*)); 结尾; $函数$ postgres=# 选择 f1('omega'); f1 ──── 2 (1 行)
[呃,这不是答案,而是关于答案中信息的后续问题!]
Pavel 说:“INTO 在这个用例中是不明确的,然后在那里被禁止。”,但这是什么意思以及我如何才能了解这意味着什么?任何人?谢谢,