Schema
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 |
|
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 |