SQL>
SQL> create or replace package SCOPES as
2 gv_scope varchar2(80) :=
3 'I''m a global (or package spec) variable';
4
5 FUNCTION my_scope_is_global
6 return varchar2;
7
8 PROCEDURE my_scope_is_global;
9
10 end SCOPES;
11 /
Package created.
SQL>
SQL> create or replace package body SCOPES as
2 iv_scope varchar2(80) := 'an instance variable';
3
4
5 FUNCTION my_scope_is_instance
6 return varchar2 is
7 v_answer_1 varchar2(3) := 'Yes';
8 begin
9 dbms_output.put_line(chr(9)||gv_scope);
10 return v_answer_1;
11 end my_scope_is_instance;
12
13
14 FUNCTION my_scope_is_global
15 return varchar2 is
16 v_answer_2 varchar2(3) := 'Yes';
17 begin
18 dbms_output.put_line(chr(9)||iv_scope);
19 return v_answer_2;
20 end my_scope_is_global;
21
22
23 PROCEDURE my_scope_is_instance is
24 v_answer_3 varchar2(3) := 'Yes';
25 begin
26 dbms_output.put_line(chr(9)||gv_scope);
27 dbms_output.put_line(v_answer_3);
28 end my_scope_is_instance;
29
30
31 PROCEDURE my_scope_is_global is
32 v_answer_4 varchar2(3) := 'Yes';
33 begin
34 dbms_output.put_line(chr(9)||iv_scope);
35 dbms_output.put_line(v_answer_4);
36 end my_scope_is_global;
37
38
39 end SCOPES;
40 /
Package body created.
SQL>
SQL> declare
2 v_scope varchar2(40) := 'I''m a local variable';
3 FUNCTION my_scope_is_local
4 return varchar2 is
5 v_answer_0 varchar2(3) := 'Yes';
6 begin
7 return v_answer_0;
8 end my_scope_is_local;
9
10 PROCEDURE my_scope_is_local is
11 v_answer varchar2(3) := 'Yes';
12 begin
13 dbms_output.put_line(v_answer);
14 end my_scope_is_local;
15 begin
16
17 dbms_output.put_line(v_scope);
18
19 dbms_output.put_line(SCOPES.gv_scope);
20
21 dbms_output.put_line(my_scope_is_local());
22
23 dbms_output.put_line(SCOPES.my_scope_is_global());
24
25 my_scope_is_local();
26
27 SCOPES.my_scope_is_global();
28
29
30 end;
31 /
I'm a local variable
I'm a global (or package spec) variable
Yes
an instance variable
Yes
an instance variable
Yes
PL/SQL procedure successfully completed.
SQL>