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 :

syntaxe pr tester les corespondances entre occurence tables


Sujet :

SQL Oracle

  1. #1
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut syntaxe pr tester les corespondances entre occurence tables
    Bonjour , ( verssion :DB 9i Forms 10g Toad 9)

    j'ai un problème pour tester si des table ont des correspondances dans une autre table sr ma fenêtre(service maintenance)
    le code est sur forms mais le probleme est d'ordre syntaxique.
    j'arrive pas a trouver la bonne syntaxe pour le dernier test

    LES TABLES: PRESTATION VEHICULE >prest_veh** HUILE_PRESTATION VEH >huile_prest** PIECE_PRESTATION_VEHICULE> piece_prest**


    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
    DECLARE 
      v_invalid boolean;    
          cursor c_d  is select V.DES_PREST
      from PRESTATION V 
      where V.NUM_PREST=:PREST_VEH.NUM_PREST;
    begin 
      open c_d ;
      v_invalid:=c_d%notfound;.
      IF v_invalid then null;------------------------------------ (1ER TEST.
      else
     
      fetch c_d  into :PREST_VEH.PRESTATION;     ---(champ prestation du vehicule)
     
      end if;
      end; 
      begin
          select   H.DES_HUIL,HP.QT_HP
      INTO
      :PREST_VEH.HUILE,
      :PREST_VEH.QTE_H
      FROM HUILE_PREST HP,HUILE H
    WHERE 
      H.CODE_HUIL=HP.NUM_HL 
      AND HP.NUM_COMPM=:PREST_VEH.NUM_COMPM 
      AND HP.N_CHASS=:PREST_VEH.N_CHASS
      AND HP.NUM_PREST=:PREST_VEH.NUM_PREST;
      EXCEPTION 
                 WHEN NO_DATA_FOUND     ----------------------(2EM TEST...........        
                 THEN NULL;
      end;
      begin    IF EXIST    (SELECT num_compm    <----------------------(3EM Test c'est la que je bloque???
              from piec_prest where 
               num_compm=:prest_veh.num_compm
               and n_chass=:prest_veh.n_chass) then
       INSTRUCTION....{select into...
    end;
    **********************************************FIN
    MERCI ENCORE

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    EXISTS est une commande SQL pas PL/SQL. Tu dois faire le SELECT... WHERE EXISTS et tester le résultat.

  3. #3
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut tjr aussi rapid :)
    merci beaucoup!
    donc, si j'ai bien saisi je pourrais peut etre aussi.
    faire une insertion(instruction) where existe des piece dans la prestation

    Genre:
    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
     
    ..........             
                                                       -------test 3
    select P.DES_PIEC,PP.QT_PM
      INTO :PREST_VEH.PIECE,:PREST_VEH.qte_p
      FROM PIECE P,PIECE_PREST PP
    where EXISTS (SELECT num_compm    
              FROM piec_prest
       WHERE 
               num_compm=:prest_veh.num_compm 1
               AND n_chass=:prest_veh.n_chass 2
               AND num_prest=:prest_veh.num_prest 3)
    AND
      WHERE P.REF_PIEC=PP.NUM_PIECE
      AND   PP.NUM_COMPM=:PREST_VEH.NUM_COMPM----1
      AND   PP.N_CHASS=:PREST_VEH.N_CHASS-------2
      AND   PP.NUM_PREST=:PREST_VEH.NUM_PREST----3;
    je sais je dois enlever le deuxième where mais sinon
    tout ce dont j'ai envie c'est de tester si il ya des pieces utilsés dans la prestation du véhicule si c'est pas le cas
    je ne rempli pas les champ (:piece :Qt.piec) vue que y a rien!(then null)*

    NB : au niveau des jointure 1 2 et 3 je doit fusioner , ou suprimer ceux d'en bas /ou ceux de la sou requete ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    attention à la gestion du NO_DATA_FOUND aussi

  5. #5
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut
    OK boss
    des Que je teste je rend les résultat!
    Merci

Discussions similaires

  1. Besoin d'aide sur les relations entre mes tables
    Par Jenojen dans le forum Bases de données
    Réponses: 102
    Dernier message: 06/09/2008, 12h27
  2. Visualiser les liens entre plusieurs tables .dbf
    Par emmy99 dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 21/02/2008, 19h47
  3. exporter les données entre deux tables différentes ?
    Par tizilfin dans le forum Oracle
    Réponses: 3
    Dernier message: 12/03/2007, 15h39
  4. [Conception] Aide pour les liaison entre 2 table
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/09/2006, 13h03
  5. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 17h07

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