2017-06-28 6 views

Répondre

5

Essayez:

create or replace function get_query_tables(p_query text) returns text[] language plpgsql as $$ 
declare 
    x xml; 
begin 
    execute 'explain (format xml) ' || p_query into x; 
    return xpath('//explain:Relation-Name/text()', x, array[array['explain', 'http://www.postgresql.org/2009/explain']])::text[]; 
end $$; 

select get_query_tables('your query here'); 

dbfiddle

-2
TableList:=TStringList.Create; 
pgConnection1.GetTableNames(TableList,False); 
+3

Q ne concerne pas toutes les tables de la base de données, mais les tables impliquées dans la requête. – Abelisto

+1

Oui OK, je devrais lire la question plus attentivement. Beaucoup plus complexe que je pensais. J'essaie juste de contribuer quand j'ai une chance. – becsystems

+0

Bien que ce code puisse (ou non) répondre à la question, vous devez ajouter une explication indiquant pourquoi/comment il résout le problème. – BDL