J'essaie de créer une vue à l'intérieur de la fonction en utilisant plpgsql qui retourne la colonne x de la "petite" table qui est définie comme (x entier, y entier).La relation n'existe pas PLPGSQL
create or replace function skyline_naive2(dataset text) returns setof integer as
$$
declare
fullx text;
begin
fullx = dataset||'_skyline_naive2';
execute format('create view %s as select x,y from %s',fullx,dataset);
return query select x from fullx;
end
$$ language plpgsql;
select * from skyline_naive2('small');
Il retourne « relation fullx n'existe pas »
Je comprends qu'il est parce qu'il n'y a pas de relation fullx, mais je veux appeler la vue en utilisant le nom de la variable.
Toute aide sera
merci beaucoup aussi ce qui peut être fait si je retourne un entier au lieu de setof nombre entier? foreg requête de retour execute format ('select count (x) from% I', fullx); mais la requête de retour ne fonctionne qu'avec setof –
Dans ce cas, vous pouvez déclarer une variable entière, 'execute ... into variable' et la renvoyer. – klin