Schema
Owner
albenard
Descriptions
Cette fonction effectue un comptage sur la qualité de l'objet géométrique d'une table.
Les paramètres à utiliser sont :
- nom de la table concernée.
- colonne contenant un identifiant au sein de la table (pour permettre le comptage)
- nom de la colonne contenant les objets géométriques à ananlyser.
Options
Option | Value |
---|---|
Returns |
Set of record |
Language |
|
Parameters |
nom_table_concernee varchar nom_cle_table varchar nom_champ_geom varchar out libelle_sortie varchar out nb_sortie integer |
Definition
CREATE OR REPLACE FUNCTION "analyse".ps_analyse_geom_table_sommaire (
nom_table_concernee varchar,
nom_cle_table varchar,
nom_champ_geom varchar,
out libelle_sortie varchar,
out nb_sortie integer
)
RETURNS SETOF record AS
$span$
DECLARE
curs_table refcursor; -- Curseur recevant les informations de la table à analyser
rec_table record; -- Enregistrement contenant la ligne en cours de traitement
rec_analyse record; -- Variable de type record pour contenir l'analyse de l'objet géométrique de la ligne courante
v_query varchar; -- Chaine permettant de construire la requête
BEGIN
v_query = 'Select ''Geometrie nulle'' as libelle, count(' || nom_cle_table ||' ) as nb from ' || nom_table_concernee || ' where ' || nom_champ_geom || ' is null union ' ;
v_query = v_query || 'select reason(st_isvaliddetail(' || nom_champ_geom || ')) as libelle, count(' || nom_cle_table ||') as nb from ' || nom_table_concernee || ' where NOT(' || nom_champ_geom || ' is NULL) group by reason(st_isvaliddetail(' ||nom_champ_geom || '));';
open curs_table FOR EXECUTE(v_query) ;
LOOP
FETCH curs_table into rec_table;
if found then
if rec_table.libelle is null THEN
libelle_sortie='Geométries correctes';
else
libelle_sortie=rec_table.libelle;
end if ;
nb_sortie = rec_table.nb;
return next;
ELSE
EXIT;
end if;
end loop;
RETURN;
EXCEPTION
WHEN OTHERS THEN
raise notice 'Erreur ps_analyse_geom_table : % %', sqlstate, sqlerrm;
END;
$span$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100 ROWS 1000;
COMMENT ON FUNCTION "analyse".ps_analyse_geom_table_sommaire(nom_table_concernee varchar, nom_cle_table varchar, nom_champ_geom varchar, out libelle_sortie varchar, out nb_sortie integer)
IS 'Cette fonction effectue un comptage sur la qualité de l''objet géométrique d''une table.
Les paramètres à utiliser sont :
- nom de la table concernée.
- colonne contenant un identifiant au sein de la table (pour permettre le comptage)
- nom de la colonne contenant les objets géométriques à ananlyser.';
This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 13/03/2014 13:23 |