sqlだと 以下で通る文が select count(*) from pg_class where relkind = 'r'; plpgsqlだと CREATE OR replace FUNCTION myfunc3() RETURNS integer AS ' DECLARE arg1 integer; BEGIN select count(*) into arg1 from pg_class where relkind = "r" RETURN arg1; END 'LANGUAGE 'plpgsql'; SELECT myfunc3(); ERROR: column "r" does not exist CONTEXT: SQL statement "SELECT count(*) from pg_class where relkind = "r"" PL/pgSQL function "myfunc3" line 4 at select into variables これは動く CREATE OR replace FUNCTION myfunc3() RETURNS integer AS ' DECLARE arg1 integer; BEGIN select count(*) into arg1 from pg_class where relkind = ''r''; RETURN arg1; END 'LANGUAGE 'plpgsql'; SELECT myfunc3(); 39