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

SQL Oracle Discussion :

problemes avec les triggers.


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut problemes avec les triggers.
    salut voila je viens de créer mes tables issues de mon mcd mais j'ai du mal avec les triggers,l'éxo et que je n'ai pas afficher dit:" quand un nouveau vol a eu lieu, non seulement le compteur de l'avion de l'avion est mis à jour mais aussi le compte d'un pilote doit être debité du cout du vol.

    voici mes tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    CREATE TABLE PILOTE(
    nom CHAR (30) ,
    prenom    CHAR (30),
    adresse   CHAR (30),
    NbHVol    INT ,
    Brevet    INT,
    position  FLOAT,
    Habil     CHAR (30),
    CONSTRAINTS pk_Pilote  PRIMARY KEY (nom)) ;
     
     
    CREATE TABLE AVION (
    immat     INT  ,
    TYPE    CHAR (30) ,
    PRIX      FLOAT,
    COMPTH  INT,
    CARAC    CHAR (30),
    CONSTRAINTS pk_Avion  PRIMARY KEY (immat));
     
     
     
     CREATE TABLE AEROCLUB (
     raison  char(30) ,
     divers  char(30),
    CONSTRAINTS pk_AEROCLUB  PRIMARY KEY (raison));
     
     
    CREATE TABLE MvtComptHvol(
    nom     CHAR (30)
    codmouv    CHAR(4),
    codnat      CHAR(4),
    datmouv         DATE,
    Montant  Float,
    CONSTRAINTS pk_MvtComptHvol PRIMARY KEY (nom));
     
     
     
    CREATE TABLE VOL (
    immat   INT,
    nomVol CHAR (30),
    nomFact CHAR (30),
    datdeb   DATE,
    datfin    DATE,
    compthdep  INT,
    compthfin   INT,
    CONSTRAINTS pk_VOL PRIMARY KEY (immat));
     
     
     
     
     
    CREATE TABLE  APPARTIENT_A (
    raison   CHAR (30) ,
     immat   INT   ,
    CONSTRAINT fk_APPARTIENT_A_immat_AVION FOREIGN KEY (immat)  REFERENCES  AVION (immat),
    CONSTRAINT fk_APPARTIENT_A_raison_AERO FOREIGN KEY (raison)   REFERENCES  AEROCLUB(raison));
     
     
     
    CREATE TABLE  Peut_Piloter (
    nom   CHAR (30) ,
    immat   INT   ,
    CONSTRAINT fk_Peut_Piloter_immat_AVION FOREIGN KEY (immat)  REFERENCES  AVION (immat),
    CONSTRAINT fk_Peut_Piloter_nom_Pilote FOREIGN KEY (nom)   REFERENCES  PILOTE (nom));
     
     
     
    CREATE TABLE  Membre_De(
    nom   CHAR (30) ,
    raison   CHAR   ,
    CONSTRAINT fk_Membre_De_raison_AERO  FOREIGN KEY (raison)  REFERENCES  AEROCLUB (raison),
    CONSTRAINT fk_Membre_De_nom_Pilote FOREIGN KEY (nom)   REFERENCES  PILOTE (nom));


    et voici mon trigger pour la mise à jour du compte du pilote qui s'effectue à chaque fois qu'il y a un vol.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TRIGGER MAJ_Compte  
    AFTER INSERT   ON VOL 
    FOR EACH  ROW
    begin
    UPDATE PILOTE SET Pilote.position := pilote.position -new.prix
    end;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    qu 'en pensez vous?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    voici le message d'erreur.

    ERREUR à la ligne 1 :
    ORA-00942: Table ou vue inexistante/

    Vraiment je ne comprend pas j'ai bien crée la table VOL

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par défaut
    C'est peut être pas ça mais ton new.prix n'est pas déclaré et n'est pas en rapport avec une table.

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    A priori, j'utiliserais plutôt = que :=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TRIGGER MAJ_Compte  
    AFTER INSERT   ON VOL 
    FOR EACH  ROW
    begin
    UPDATE PILOTE SET Pilote.position = pilote.position - new.prix
    end;
    Quel est le SGBD ?

    Avec Oracle par exemple, ce serait :new.prix.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A priori, j'utiliserais plutôt = que := 
     
    CREATE TRIGGER MAJ_Compte  
    AFTER INSERT   ON VOL 
    FOR EACH  ROW
    begin
    UPDATE PILOTE SET Pilote.position = pilote.position - new.prix
    end;
    Quel est le SGBD ?

    Avec Oracle par exemple, ce serait :new.prix.
    Oracle la version 10.Que penses tu de mon triggers pour une mise à jours, je me casse la tête mais je n'y arrive pa et je ne suis pas du genre à laisser tomber.Je veux variment comprendre.

Discussions similaires

  1. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  2. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  3. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 12h32
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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