PostgreSQL错误:正在执行选择。。。没有执行到

PostgreSQL错误:正在执行选择。。。没有执行到,postgresql,user-defined-functions,postgresql-8.4,Postgresql,User Defined Functions,Postgresql 8.4,当我从我定义的函数中运行以下命令时,我得到SELECT的错误EXECUTE。。。没有实施。这是否意味着不允许使用特定命令,即选择…进入?或者这仅仅意味着我做错了什么?导致错误的实际代码如下所示。我很抱歉,如果答案已经在这里了,但是我看了,没有找到这个具体的错误。先谢谢你。。。不管值多少钱,我都在跑8.4.7 vCommand = 'select ' || stmt.column_name || ' as id ' || ', count(*) as nCount

当我从我定义的函数中运行以下命令时,我得到SELECT的错误EXECUTE。。。没有实施。这是否意味着不允许使用特定命令,即选择…进入?或者这仅仅意味着我做错了什么?导致错误的实际代码如下所示。我很抱歉,如果答案已经在这里了,但是我看了,没有找到这个具体的错误。先谢谢你。。。不管值多少钱,我都在跑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 OR REPLACE FUNCTION public.f1(tablename character varying) RETURNS integer LANGUAGE plpgsql AS $function$ begin execute 'create temp table xx on commit drop as select * from ' || quote_ident(tablename); return (select count(*) from xx); end; $function$ postgres=# select f1('omega'); f1 ──── 2 (1 row)
确实是这样。剥猫皮的方法不止一种!谢谢你指出这一点-