db.silva.inrae.fr/db_biljou_param - db_biljou_param on db.silva.inrae.fr
Previous topic Chapter index Next topic

Function: ps_informations_table_data

 

 

Schema

public

 

Owner

biljou_param

 

Descriptions

Procédure permettant d'obtenir des informations de description des variables dipsonibles au sein des tables données avec éventuellement des informations de traçabilité. Certains champs sont exclus de cettte description et ceux qui ne représentent pas des variables stockées dans la table des variables ne sont que peu documentés.

 

Options

Option

Value

Returns

Set of record

Language

plpgsql

Parameters

out nom_table varchar

out nom_champ varchar

out type_champ varchar

out source varchar

out var_nom varchar

out var_description varchar

out var_origine varchar

out unite varchar

out transformation varchar

out equation varchar

 

Definition

CREATE OR REPLACE FUNCTION public.ps_informations_table_data (
 out nom_table varchar,
 out nom_champ varchar,
 out type_champ varchar,
 out source varchar,
 out var_nom varchar,
 out var_description varchar,
 out var_origine varchar,
 out unite varchar,
 out transformation varchar,
 out equation varchar
)
RETURNS SETOF record LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
PARALLEL UNSAFE
COST
100 ROWS 1000
AS
$span$
DECLARE
 curs_champ refcursor; -- Curseur recevant les informations de champs
 curs_variable refcursor; -- Curseur recevant les iformations sur les variables
 rec_champ   record; -- Enregistrement contenant la ligne (champ) en cours de traitement
 rec_variable record; -- Enregistrement contenant la ligne (variable) en cours de traitement
 requete varchar; -- Cgaine pour la constructiondes requetes
 champs_exclus varchar; -- Liste des champs à exclure du traitement
BEGIN
 champs_exclus = '('
  || quote_literal('id') || ','
   || quote_literal('x')  || ','
   || quote_literal('y')  || ','
   || quote_literal('id_maille') || ','
   || quote_literal('date_donnee') || ','
   || quote_literal('fichier_origine') || ');';
 requete = 'select table_name,column_name ,data_type from information_schema.columns where table_schema = ' || quote_literal('public') || ' and table_name like ' || quote_literal('data%') || ' and column_name not in ' || champs_exclus ||';';
 open curs_champ FOR EXECUTE(requete) ;
   LOOP
     FETCH curs_champ into rec_champ;
         if found then
          nom_table = rec_champ.table_name;
           nom_champ= rec_champ.column_name;
           type_champ = rec_champ.data_type;
           requete ='select src_nom from t_source_src where src_table_valeur ='  || quote_literal(rec_champ.table_name );
           execute requete into source;
           requete = 'SELECT
               public.t_variable_var.var_nom,
               public.t_variable_var.var_description,
               public.tj_source_variable_srv.srv_nom_origine,
               public.tr_unite_uni.uni_nom,
               public.tr_transformation_tra.tra_description,
               public.tr_transformation_tra.tra_equation                
             FROM
               public.t_source_src
               INNER JOIN public.tj_source_variable_srv ON (public.t_source_src.src_id = public.tj_source_variable_srv.srv_src_id)
               INNER JOIN public.t_variable_var ON (public.tj_source_variable_srv.srv_var_id = public.t_variable_var.var_id)
               INNER JOIN public.tr_unite_uni ON (public.t_variable_var.var_uni_id = public.tr_unite_uni.uni_id)
               LEFT JOIN public.tr_transformation_tra ON (public.tj_source_variable_srv.srv_tra_id = public.tr_transformation_tra.tra_id) where src_table_valeur ='
 || quote_literal(rec_champ.table_name) || ' and var_code_echange =' ||  quote_literal(rec_champ.column_name) || ';';
execute requete into var_nom,var_description,var_origine,unite,transformation,equation;              
           return next;
         ELSE
          exit
;
         end if;
   end loop;
 
 
EXCEPTION
WHEN
OTHERS THEN
  
raise notice 'Erreur ps_informations_table_data - % %', sqlstate, sqlerrm;
END;
$span$;

COMMENT ON FUNCTION public.ps_informations_table_data(out nom_table varchar, out nom_champ varchar, out type_champ varchar, out source varchar, out var_nom varchar, out var_description varchar, out var_origine varchar, out unite varchar, out transformation varchar, out equation varchar)
IS 'Procédure permettant d''obtenir des informations de description des variables dipsonibles au sein des tables données avec éventuellement des informations de traçabilité. Certains champs sont exclus de cettte description et ceux qui ne représentent pas des variables stockées dans la table des variables ne sont que peu documentés.';

This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 07/12/2018 13:23
Previous topic Chapter index Next topic