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 :

la différence entre print et dbms_output.put_line()


Sujet :

PL/SQL Oracle

  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut la différence entre print et dbms_output.put_line()
    bonjour tout le monde ma question est simple
    c est quoi la différence entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      sql> dbms_output.put_line(var)
    et merci

  2. #2
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    Bonjour,

    print est une commande SQL*Plus.

    dbms_output.put_line est une procédure et ne peut être appelée que dans un bloc PL/SQL.

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    bonsoir xdescamp je suis d accord avec toi ,et tout les deux leur fonction c est l'affichage .

    voila un code

    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
     
    SQL> set serveroutput on
    SQL> variable g_compteur number;
    SQL> declare
      2  v_compteur  number (3) :=99;
      3  begin
      4  :g_compteur:=1;
      5  v_compteur:=:g_compteur+200;
      6  dbms_output.put_line(v_compteur);
      7  end;
      8  /
    201
     
    ProcÚdure PL/SQL terminÚe avec succÞs.
     
    SQL> print g_compteur;
     
    G_COMPTEUR
    ----------
             1
     
    SQL> print v_compteur;print g_compteur;
    SP2-0552: Variable de lien "V_COMPTEUR" non dÚclarÚe.
    mais quand je remplace dbms_output.put_line(v_compteur);
    avec dbms_output.put_line(g_compteur);

    sql plus m affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dbms_output.put_line(g_compteur);
                         *
    ERREUR Ó la ligne 6 :
    ORA-06550: Ligne 6, colonne 22 :
    PLS-00201: l'identificateur 'G_COMPTEUR' doit Ûtre dÚclarÚ
    ORA-06550: Ligne 6, colonne 1 :
    PL/SQL: Statement ignored
    et quand je remplace (print g_compteur; ) avec (print v_compteur; )
    la même chose il faut que je déclare les variable pourtant tout est déclaré ????

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Même réponses que xdescamp, vous mélangez et confondez SQL*Plus et PL/SQL.

    g_compteur est déclaré dans SQL*Plus, pas dans votre PL/SQL.

  5. #5
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    D'ailleurs, vous avez identifié vous-même que pour accéder à g_compteur dans un bloc PL/SQL, il faut le préfixer par ":". Donc dbms_output.put_line (:g_compteur); fonctionnera.
    Par contre, v_compteur n'est déclarée et n'existe que dans le bloc PL/SQL.

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. différence entre return et print
    Par titus712 dans le forum Général Python
    Réponses: 2
    Dernier message: 24/12/2009, 17h29
  3. [codage][console] différence entre print et sys.stdout.write
    Par MorganStern dans le forum Général Python
    Réponses: 1
    Dernier message: 03/08/2007, 19h20
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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