Обсуждение: EXECUTE SELECT INTO... last one!
PgSql8.1beta2 gives me this: ERROR: EXECUTE of SELECT ... INTO is not implemented yet CONTEXT: PL/pgSQL function "_rndbroj" line 5 at execute statement Shall I forget about this once and for all (and use FOR construct), or there is a chance that will be 'fixed'? Mario -- Mario Splivalo Mob-Art mario.splivalo@mobart.hr "I can do it quick, I can do it cheap, I can do it well. Pick any two."
On Fri, Sep 30, 2005 at 10:00:35AM +0200, Mario Splivalo wrote:
> PgSql8.1beta2 gives me this:
>
> ERROR: EXECUTE of SELECT ... INTO is not implemented yet
> CONTEXT: PL/pgSQL function "_rndbroj" line 5 at execute statement
Could you post a simple example of what you're trying to do? The
following works for me in 8.1beta2 (from CVS):
CREATE FUNCTION mycount(text) RETURNS bigint AS $$
DECLARE query text; cnt bigint;
BEGIN query := 'SELECT count(*) FROM ' || quote_ident($1); EXECUTE query INTO cnt; RETURN cnt;
END;
$$ LANGUAGE plpgsql;
SELECT mycount('pg_class');mycount
--------- 188
(1 row)
--
Michael Fuhr
On Fri, 2005-09-30 at 02:34 -0600, Michael Fuhr wrote: > On Fri, Sep 30, 2005 at 10:00:35AM +0200, Mario Splivalo wrote: > > PgSql8.1beta2 gives me this: > > > > ERROR: EXECUTE of SELECT ... INTO is not implemented yet > > CONTEXT: PL/pgSQL function "_rndbroj" line 5 at execute statement > > Could you post a simple example of what you're trying to do? The > following works for me in 8.1beta2 (from CVS): > > CREATE FUNCTION mycount(text) RETURNS bigint AS $$ > DECLARE > query text; > cnt bigint; > BEGIN > query := 'SELECT count(*) FROM ' || quote_ident($1); > EXECUTE query INTO cnt; > RETURN cnt; > END; > $$ LANGUAGE plpgsql; Yes, it's my fault. I was testing it on pg7.4. On 8.1beta2 works as you explained. Though it would be realy nice to be able to do var := col FROM tempTable WHERE condition withouth EXECUTE'ing and stuff. Sorry for the fuss I might have created. Mario -- Mario Splivalo Mob-Art mario.splivalo@mobart.hr "I can do it quick, I can do it cheap, I can do it well. Pick any two."