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*Plus Oracle Discussion :

Requete SQL dans une variable


Sujet :

Sql*Plus Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut Requete SQL dans une variable
    Bonjour,

    Dans mon .sql j'aurais souhaité stocker le résultat d'une requête (un ID) dans une variable. De cette manière je pourrais l'utiliser sur les cinq requêtes de delete qui suivent. Je ne suis pas trop calé et je m'y perds un peu.

    Voila la structure que j'ai faite mais qui malheureusement ne fonctionne pas:
    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
    connect ........;
     
    VAR LNUM NUMBER;
     
    BEGIN
     
    :LNUM := select id from matable where c_appli ='appli_1';
     
    delete from table2 where id_matable = :LNUM;
     
    delete from table3 where id_matable = :LNUM;
     
    delete from table4 where id_matable = :LNUM;
     
    commit;
     
    END;
    /
    J'ai l'erreur ligne 4 symbole "select" rencontré à la place d'un des symboles suivant: < - + etc...

    Merci de votre aide

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Hello jlInfo,

    Je n'ai pas testé, mais ceci devrait faire l'affaire.

    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
    declare 
      l_num NUMBER(*, 4);
    -- ou mieux l_num MATABLE.id%TYPE; (pour copier le type du champ ID)
    begin
      SELECT id INTO l_num
        FROM matable 
       WHERE c_appli='appli_1' 
         AND ROWNUM = 1;
      -- ROWNUM ajouté pour ne prendre de risque que ta requete renvoit
      -- deux enregistrements différents.
     
       DELETE FROM TABLE2 
        WHERE ID_MA_TABLE = l_num;
     
       DELETE FROM TABLE3 
        WHERE ID_MA_TABLE = l_num;
     
       ...
     
    end;
    /
    On n'utilise pas le mot clé VAR pour déclarer une variable en PL/SQL.

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut
    Merci pour ta reponse! effectivement c est la bonne solution

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

Discussions similaires

  1. [AC-2007] Résultat d'une requete sql dans une variable VBA
    Par psylo24 dans le forum Access
    Réponses: 4
    Dernier message: 06/06/2013, 03h38
  2. prendre la valeur d'une requete SQL dans une variable
    Par dodo91 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 03/06/2009, 16h10
  3. Envoi d'une valeur d'une requete sql dans une variable ?
    Par olivierc25 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/04/2007, 13h11
  4. Importer valeur requete SQL dans une Requete
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/03/2006, 14h24
  5. Recuperer un enregistrement de requete SQL dans une variable
    Par kleenex dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/09/2005, 15h59

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