Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / PL SQL Programming
 

Scope Rules

Scope means the range of code within which a given identifier can be referenced. An identifier can be referenced only by code executing inside the block in which the identifier was declared. An identifier could be a variable name, or a procedure name, function name. The following example illustrates the scope of various identifiers. SQL> SET SERVEROUTPUT ON SQL> DECLARE   2    a_name  VARCHAR2(30) := 'James';   3  PROCEDURE name_print IS   4  BEGIN   5    DBMS_OUTPUT.PUT_LINE(a_name);   6  END;   7   8    BEGIN   9       DBMS_OUTPUT.PUT_LINE(a_name);  10    DECLARE  11       b_name  VARCHAR2(30) := 'Jenny';  12  13     BEGIN  14         DBMS_OUTPUT.PUT_LINE('Inside nested block');  15         DBMS_OUTPUT.PUT_LINE(a_name);  16         DBMS_OUTPUT.PUT_LINE(b_name);  17         name_print;  18     END;  19     DBMS_OUTPUT.PUT_LINE('Back in the main block');  20     --b_name is not defined in this block.  21     --DBMS_OUTPUT.PUT_LINE(b_name);  22     name_print;  23  END;  24   / James Inside nested block James Jenny James Back in the main block James PL/SQL procedure successfully completed. SQL>