IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[XE] Comparaison de dates dans un Trigger


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut [XE] Comparaison de dates dans un Trigger
    Bonjour,

    J'ai un problème à cause duquel je m'arrache les cheveux (je vais devenir chauve à force, s'il vous plait.... sauvez mes cheveux !! )

    Bref... je cherche juste à comparer une date de naissance avec une date de deces, pour bien vérifier qu'un individu n'est pas mort avant d'être né lol.
    J'utilise donc un trigger, et je prend aussi en compte le fait que l'individu peut ^ne pas encore être mort : date deces = NULL

    Voici le code :
    create or replace trigger "TRG_INDIVIDU" BEFORE insert or update or delete on "INDIVIDU" for each row
    begin

    if (:NEW.DATE_NAISSANCE_IND > :NEW.DATE_DECES_IND) then
    begin
    if (NOT(:NEW.DATE_DECES_IND = NULL)) then
    RAISE_APPLICATION_ERROR ( -20018, 'Date de décès incorrecte' );
    end if;
    end;
    end if;

    end;
    Dans tous les cas... ça marche, même quand la date de deces est inférieure à la date de naissance.

    JE COMPREND PAS !!

    Merci pour votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    create or replace trigger "TRG_INDIVIDU" BEFORE insert or update or delete on "INDIVIDU" for each row 
    begin 
     
    if (:NEW.DATE_NAISSANCE_IND > :NEW.DATE_DECES_IND) then 
    RAISE_APPLICATION_ERROR ( -20018, 'Date de décès incorrecte' ); 
    end if; 
     
    end;
    Tu n'as besoin de tenir compte de la valeur null, car le résultat d'une comparaison avec une valeur null est toujours null
    => la condition n'est jamais respectée

  3. #3
    Membre confirmé Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    Mouarf, c'etait donc ça..... arf

    Merci en tout cas !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification de format de date dans un trigger
    Par Nious99 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 14/11/2007, 15h57
  2. Comparaison de dates dans un formulaire
    Par fusex132 dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/11/2007, 15h32
  3. [XML] Pb avec comparaison de dates dans un XML
    Par gaggy dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/10/2007, 15h25
  4. Comparaison de dates dans Mysql
    Par inch dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2007, 12h08
  5. Comparaisons de dates dans un SELECT
    Par lodan dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/10/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo