bonjour tout le monde ma question est simple
c est quoi la différence entreetCode:sql> dbms_output.put_line(var)
merci :)Code:sql> print var
Version imprimable
bonjour tout le monde ma question est simple
c est quoi la différence entreetCode:sql> dbms_output.put_line(var)
merci :)Code:sql> print var
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.
bonsoir xdescamp je suis d accord avec toi ,et tout les deux leur fonction c est l'affichage .
voila un code
mais quand je remplace dbms_output.put_line(v_compteur);Code:
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.
avec dbms_output.put_line(g_compteur);
sql plus m affiche
et quand je remplace (print g_compteur; ) avec (print v_compteur; )Code:
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
la même chose il faut que je déclare les variable pourtant tout est déclaré ????
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.
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.