2017-07-17 1 views
2

Je veux créer une vue de tableau en utilisant une fonction qui retourne une table temporaire ...postgres - Créer vue à l'aide d'une fonction qui donne une table temporaire

Par exemple, j'ai une fonction.

create or replace function colpivot(
    out_table varchar 
) returns void as $$ 
    declare 
     in_table varchar; 
    begin 

    create table as select * from employees; 
end; 

Maintenant, je veux créer une vue en utilisant la table temporaire (out_table) donnée par la fonction ci-dessus ...

Est-il possible de le faire?

+2

Au lieu de créer une table temporaire, déclare et retourner un refcursor. Voir le manuel. –

Répondre

-1

Je modifier votre requête comme suit

create or replace function colpivot(
out_table varchar) returns void as $$ 

begin 

    select * from employees into out_table ; 
    execute 'CREATE OR REPLACE VIEW newView AS ' || out_table; 

end; 
$$ LANGUAGE plpgsql;