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 :

Aide PL /SQL


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de soumou
    Inscrit en
    Juin 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 208
    Par défaut Aide PL /SQL
    salut,

    comment faire pour demander à quelqu'un (à l'aide de PL/SQL) de saisir le numéro d'un employée par exemple à partir de SQL*PLUS, prendre ce numéro le stocker dans une variable qui peut etre exploitée dans le programme PL/SQL.

    Merci de votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    En utilisant la commande SQL*Plus accept :
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    accept maVar prompt "Valeur pour la variable : "
    set ver off
    set serveroutput on size 100000
    begin
      dbms_output.put_line ('&maVar');
    end;
    /
    A l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> @test
    Valeur pour la variable : TEST
    TEST
     
    PL/SQL procedure successfully completed.

  3. #3
    Membre éclairé Avatar de soumou
    Inscrit en
    Juin 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 208
    Par défaut
    salut

    j'ai assayé le code que tu m'as proposé, cependant j'obtient le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SQL> start D:\oracle\PLSQL\display.sql
    Entrez une valeur pour numemp : 7788
    accept numemp prompt "Numéro de lemployée : "
           *
    ERREUR à la ligne 14 :
    ORA-06550: Ligne 14, colonne 8 :
    PLS-00103: Symbole "NUMEMP" rencontré à la place d'un des symboles suivants :
    := . ( @ % ;
    voici le code de D:\oracle\PLSQL\display.sql :

    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
    set serveroutput on
    DECLARE
    monom varchar(20);
    name emp.ename%TYPE;
    nblignes integer;
    erreur exception;
    BEGIN
    monom := 'abdelmounaim';
    DBMS_OUTPUT.PUT_LINE(monom);
    select count(*) into nblignes from scott.emp;
    if nblignes > 10 then
    Raise erreur;
    end if;
    DBMS_OUTPUT.PUT_LINE('Le nombre de lignes dans la table emp est : '||nblignes);
    accept numemp prompt "Numéro de lemployée : "
    set ver off
    select ename into name from scott.emp where empno= &numemp;
    DBMS_OUTPUT.PUT_LINE('le nom de lemployée : '||name);
    EXCEPTION
    WHEN NO_DATA_FOUND then DBMS_OUTPUT.PUT_LINE('y a une erreur ici');
    when erreur then DBMS_OUTPUT.PUT_LINE('y a trop de monde');
    when others then DBMS_OUTPUT.PUT_LINE('y a une erreur ici');
    END;
    /
    

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    ACCEPT est une instruction SQL*Plus (qui ne peut s'exécuter que côté client) et ne peut pas être appelée par du code PL/SQL (qui ne peut s'exécuter que côté serveur).

    Il faut donc séparer clairement le code SQL*Plus et le code PL/SQL.

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

Discussions similaires

  1. [oracle 10g] aide connection sql
    Par isidore dans le forum Oracle
    Réponses: 8
    Dernier message: 15/02/2006, 11h11
  2. besoin d'aide pl/SQL
    Par toome dans le forum PL/SQL
    Réponses: 1
    Dernier message: 13/12/2005, 15h26
  3. Besoin d'aide requete sql
    Par dinde dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/10/2005, 09h09
  4. [Aide requete SQL]
    Par viny dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 22/04/2005, 17h00
  5. aide PL/SQL syntaxes [debutant] [mauvaise doc]
    Par sdeb dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/01/2004, 12h59

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