By definition, the scope of a variable is a region of a program unit from which you can reference the variable.
A variable is local to the block where it is declared.
A variable is global to all sub-blocks of the block where it is declared.
In the following code, variable V_STR1_main is local for the block labeled and global for the
block labeled . Variable V_STR1_sub is visible only in the block .
SQL> <>
2 declare
3 v_str1_main VARCHAR2(10);
4 begin
5 v_str1_main :='ABC'; -- local
6 <>
7 declare
8 v_str1_sub VARCHAR2(1);
9 begin
10 v_str1_main:='ABC'; -- local
11 v_str1_sub:='A'; -- global and visible
12 end;
13 v_str1_main :='ABC'; -- local
14 end;
15 /
PL/SQL procedure successfully completed.
SQL>