pggeodb.nancy.inra.fr/db_cefs - db_cefs on pggeodb.nancy.inra.fr
Previous topic Chapter index Next topic

Function: ps_analyse_geom_table_sommaire

 

 

Schema

analyse

 

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

plpgsql

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
Previous topic Chapter index Next topic