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

PL/SQL Oracle Discussion :

Transmission de valeur par paramètre


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    master1
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : master1

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut Transmission de valeur par paramètre
    Salutations !!

    J'aurais besoin d'aide pour un exercice qui demande d’écrire un bloc PL/SQL pour récupérer le max dans une table qui s'appelle departments.
    Le modifier pour insérer un nouveau département nommé informatique et lui associer un department-id=résultat précédent +10.
    Ensuite modifier le programme pour mettre à jour la colonne qui s'appelle location-id.
    " la valeur de location-id doit être transmis sous forme de paramètre" voila mon programme après la deuxième modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    declare
    nb departments.department-id%type;
    begin 
        select max(department-id)
        into nb
        from departments;
     
        insert into departments (department_id,department_name)
        values (nb+10 ,'informatique');
        commit;
    end;
    Pour la troisième modification un ami m'a donné le programme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    declare
    num number;
    loc varchar(30):='&va';   -----> ça doit être ça le paramètre ?
    begin
    select max(department_id)
    into num
    update departments 
    set location_id=&var     --> pourquoi ne pas utiliser la variable declarée avant "loc"
     
    where department_id=num+10;
    commit;
    end;
    J'aimerais bien que quelqu'un puisse m'expliquer la question (la valeur de location_id doit être transmise sous forme de paramètre) et des solutions si c'est possible !

    Merci d’avance !

  2. #2
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Comme quoi il ne faut pas toujours compter sur les amis et éventuellement leur demander des explications directement.

    Le script suivant (repris de ton message) va demander de saisir une valeur pour va et une valeur pour var (1). Il affecte la valeur de va à loc et n'utilise pas loc (2). On ne sait pas dans quelle table la valeur num est récupérée (3).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    declare
    num number;
    loc varchar(30):='&va';     -- (1)
    begin
    SELECT max(department_id)
    INTO num                       -- (3)
    UPDATE departments 
    SET location_id=&var        -- (2)
    WHERE department_id=num+10;
    commit;
    end;
    Pourquoi ne pas faire une procédure ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create or replace procedure maj (loc in varchar2) as
    nb departments.department_id%type;
    begin 
        SELECT max(department_id)
        INTO nb
        FROM departments;
     
        INSERT INTO departments (department_id,department_name,location_id)
        VALUES (nb+10 ,'informatique',loc);
        commit;
    end;
    Vous étiez sur la bonne piste ...

Discussions similaires

  1. Valeur par défaut des paramètres d’une méthode
    Par three minute hero dans le forum BOUML
    Réponses: 6
    Dernier message: 29/06/2008, 23h04
  2. Paramètre par réf, valeur par defaut
    Par NiamorH dans le forum C++
    Réponses: 12
    Dernier message: 20/11/2007, 16h59
  3. [Requete] Comment donner une valeur par défaut à un paramètre
    Par soforever dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 14/05/2007, 09h21
  4. Sub et valeurs par défaut d'un paramètre
    Par ldujard dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/01/2007, 17h57
  5. Réponses: 2
    Dernier message: 19/01/2007, 20h00

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