我从下面的函数中得到以下错误:
ERROR: column "_df" does not exist
create or replace function lax()returns setof record as
$$
declare
rs record;
_planunitcode int;
_DF VARCHAR(25);
str text;
begin
_planunitcode:=1;
_DF :='role.planner';
str :='select role from userplanunit where role = _DF';
--str :='select role from userplanunit where role = quote_literal('DF');';quote_ident
for rs in execute str
--for rs in select role from userplanunit where role = _DF
loop
return next rs;
end loop;
return;
end
$$ language 'plpgsql';
答案 0 :(得分:1)
我纠正了这是逃避单引号的问题
CREATE OR replace FUNCTION lax ()
RETURNS setof record AS $$
DECLARE rs record;
_planunitcode INT;
_DF VARCHAR(25);
str TEXT;
BEGIN
_planunitcode: = 1;
_DF : = 'role.planner';
str : = 'select role from userplanunit where role ='''||_DF||'''';
FOR
rs IN
EXECUTE str LOOP
RETURN NEXT rs;
END
LOOP;
RETURN;END $$
LANGUAGE 'plpgsql';