Sans exécuter le code qui suit essayez de retrouver le résultat de l’exécution du block PL/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
27
28
29
30
31
32
33
34
35
36
37
38
39
 
CREATE OR REPLACE Package PkRefDemo
Authid definer Is
  -- une variable directement accessible
  myvar  Varchar(10);
  -- procedure pour initialiser la valeur
  Procedure SetVar(myvar myvar%type);
end;
/
CREATE OR REPLACE Package Body PkRefDemo
Is
  Procedure SetVar(
      myvar In myvar%type
  ) Is
  Begin
    -- initialise la valeur
    PkRefDemo.myvar := SetVar.myvar;
  End;
End;
/
CREATE OR REPLACE Procedure PRefDemo (
  pvar    In PkRefDemo.myvar%Type
) Is
Begin
  -- reinitialise la variable de package
  PkRefDemo.SetVar(Null);
  --
  dbms_output.put_line(Nvl(pvar,'Null'));
End;
/
Declare
  l_var  PkRefDemo.myvar%Type := 'Un';   
Begin
  PkRefDemo.SetVar('Un');
  --
  PRefDemo(l_var);
  PRefDemo(PkRefDemo.myvar);
End;
/
Avez trouvé la bonne réponse ?