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 :

Impossible d'insérer des données dans une table


Sujet :

Oracle

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut Impossible d'insérer des données dans une table
    Bonjour,

    J'ai une table qui contient un certain nombre de champs et une colonne un trigger
    J'essaye d'effectuer un INSERT dans la table sauf que cela ne veut pas à cause du trigger alors que le trigger porte juste sur une colonne de la table et cette colonne je ne la met pas dans mon insert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO VOL (DATEVOL, DUREE, IDMission) VALUES (to_date('2015/03/05' , 'yyyy/mm/dd'), 3 , 1);
    voici l'erreur:
    Rapport d'erreur -
    Erreur SQL : ORA-01403: no data found
    ORA-06512: at "NB_HEURE_VOL", line 4
    ORA-04088: error during execution of trigger 'NB_HEURE_VOL'
    01403. 00000 -  "no data found"
    *Cause:    No data was found from the objects.
    *Action:   There was no data from the objects which may be due to end of fetch.
    Voici le trigger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create or replace TRIGGER NB_HEURE_VOL BEFORE
    INSERT OR UPDATE OF idSteward ON VOL
    FOR EACH ROW
    DECLARE 
    nbHVol NUMBER;
    BEGIN 
      SELECT nbHeureVolMois INTO nbHVol FROM PERSONNEL WHERE idPersonnel = :new.idSteward;
      IF((nbHVol + :new.duree) >50)THEN
        raise_application_error(-20002, 'Le steward a dépassé son nombre d''heure de vol');
      END IF;
    END ;
    Merci de votre aide

  2. #2
    Membre régulier
    Femme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 73
    Points : 71
    Points
    71
    Par défaut
    Bonjour,
    c'est bien tu as résolue ton problème mais est ce que tu peux partager ta solution au cas où quelqu'un aurait le même problème.
    bon courage pour le reste.

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Il suffit d'ajouter une condition WHEN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    create or replace TRIGGER NB_HEURE_VOL_STEWARD BEFORE
    INSERT OR UPDATE OF idSteward ON VOL
    FOR EACH ROW
    WHEN(new.idSteward != null)
    DECLARE 
    nbHVol NUMBER;
    BEGIN 
      SELECT nbHeureVolMois INTO nbHVol FROM PERSONNEL WHERE idPersonnel = :new.idSteward;
      IF((nbHVol + :new.duree) >50)THEN
        raise_application_error(-20002, 'Le steward a dépassé son nombre d''heure de vol');
      END IF;
    END ;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2010, 16h24
  2. Réponses: 1
    Dernier message: 23/03/2009, 13h56
  3. [MySQL] Insérer des données dans une table, mais ce n'est pas une table USER
    Par amerex dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/08/2008, 00h01
  4. Access: Insérer des données dans une table acces
    Par Malika_AL dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/01/2008, 22h41
  5. [SQL] Insérer des données dans une table
    Par wonga dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/08/2007, 12h00

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