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

Function: ps_animal_synonyme

 

 

Schema

public

 

Owner

albenard

 

Descriptions

Cette procédure stockée permet de remplacer un animal et ses données associées par un autre animal.

 

Options

Option

Value

Returns

boolean

Language

plpgsql

Parameters

animal_officiel varchar

animal_synonyme varchar

 

Definition

CREATE OR REPLACE FUNCTION public.ps_animal_synonyme (
 animal_officiel varchar,
 animal_synonyme varchar
)
RETURNS boolean AS
$span$
DECLARE

 id_animal_officiel integer; -- identifiant de l'animal officiel (ani_id)
 id_animal_synonyme integer; -- identifiant de l'animal synonyme (ani_id)
BEGIN
-- Récupération ID animal officiel
SELECT ani_id FROM t_animal_ani WHERE lower(ani_etiq) = lower(animal_officiel) INTO id_animal_officiel;
IF NOT found THEN
    raise notice
'Erreur - Nom animal introuvable : % ', animal_officiel;
    return FALSE;
END IF;

-- Récupération ID animal synonyme
SELECT ani_id FROM t_animal_ani WHERE lower(ani_etiq) = lower(animal_synonyme) INTO id_animal_synonyme;
IF NOT found THEN
    raise notice
'Erreur - Nom animal introuvable : % ', animal_synonyme;
    return FALSE;
END IF;
   
   -- Mise à jour des équipements
   UPDATE tj_equipement_animal_eqt_ani_eqa
    SET eqa_ani_id = id_animal_officiel
       WHERE eqa_ani_id = id_animal_synonyme;
   
   -- Mise à jour des captures
   UPDATE t_capture_cap
    SET cap_ani_id = id_animal_officiel
       WHERE cap_ani_id = id_animal_synonyme;
   
   -- Mise à jour des campagnes de positionnements
   UPDATE t_campagne_pos_cpos
     SET cpos_ani_id = id_animal_officiel
       WHERE cpos_ani_id = id_animal_synonyme;
       
   -- Mise à jour des données d'activité
   UPDATE t_activite_act
     SET act_ani_id = id_animal_officiel
       WHERE act_ani_id = id_animal_synonyme;
   
   -- Mise à jour des données d'activité en anomalie
   UPDATE t_activ_anomalie_ano
     SET ano_ani_id = id_animal_officiel
       WHERE ano_ani_id = id_animal_synonyme;
  
  -- Suppression de l'animal synonyme
  DELETE from t_animal_ani
   WHERE ani_id = id_animal_synonyme;

RAISE NOTICE 'Animal % remplacé par %', animal_synonyme, animal_officiel;
   
   RETURN true;
           
EXCEPTION
WHEN
OTHERS THEN
     raise notice
'Erreur : % %', sqlstate, sqlerrm;
     return false;
END;
$span$
LANGUAGE
'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST
100;

COMMENT ON FUNCTION public.ps_animal_synonyme(animal_officiel varchar, animal_synonyme varchar)
IS 'Cette procédure stockée permet de remplacer un animal et ses données associées par un autre animal.';

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