Block with label
SQL> <<l_outer_block>> 2 DECLARE 3 visibleValue VARCHAR2(30); 4 hiddenValue VARCHAR2(30); 5 BEGIN 6 visibleValue := 'visibleValue'; 7 hiddenValue := 'hiddenValue'; 8 9 DBMS_OUTPUT.PUT_LINE('OUTER BLOCK'); 10 DBMS_OUTPUT.PUT_LINE(visibleValue); 11 DBMS_OUTPUT.PUT_LINE(hiddenValue); 12 13 DECLARE 14 hiddenValue NUMBER(10); 15 BEGIN 16 DBMS_OUTPUT.PUT_LINE('INNER BLOCK'); 17 l_outer_block.hiddenValue := 'inner hiddenValue'; 18 DBMS_OUTPUT.PUT_LINE(l_outer_block.hiddenValue); 19 EXCEPTION 20 WHEN OTHERS 21 THEN 22 DBMS_OUTPUT.PUT_LINE('hiddenValue of type VARCHAR2 was...hidden'); 23 END; 24 END; 25 / OUTER BLOCK visibleValue hiddenValue INNER BLOCK inner hiddenValue PL/SQL procedure successfully completed. SQL>