Scope and visibility- pl/sql, PL-SQL Programming

Assignment Help:

Scope and Visibility

The References to an identifier are resolved according to its visibility and scope. The scope of an identifier is that area of a program unit (subprogram, block, or package) from which you can reference the identifier. An identifier is visible only in the areas from which you can reference the identifier using an unqualified name. The Figure shows the visibility and scope of a variable named x that is declared in an enclosing block, and then re-declared in a sub-block.

The Identifiers declared in a PL/SQL block are considered local to that block and global to all its sub-blocks. If a global identifier is re-declared in a sub-block, both the identifiers remain in the scope. Within the sub-block, though, only the local identifier is visible as you must use a qualified name to reference the global identifier.

Though you cannot declare an identifier twice in the similar block, you can declare the same identifier in two various blocks. The two items represented by the identifier are discrete, and any change in one does not affect the other. Though, a block cannot reference the identifiers declared in other blocks at the similar level as these identifiers are neither global nor local to the block.

 

2006_Scope and Visibility.jpg

 

                                          Figure: Scope and Visibility




The example below describes the scope rules. Note that the identifiers declared in one sub-block cannot be referenced in another sub-block. That is because the block cannot reference the identifiers declared in another blocks nested at similar level.


DECLARE
a CHAR;
b REAL;
BEGIN

-- identifiers available here: a (CHAR), b
DECLARE
a INTEGER;
c REAL;
BEGIN
-- identifiers available here: a (INTEGER), b, c
END;
DECLARE
d REAL;
BEGIN
-- identifiers available here: a (CHAR), b, d
END;
-- identifiers available here: a (CHAR), b
END;


Remember that the global identifiers can be re-declared in a sub-block, in that case the local declaration prevails and the sub-block cannot reference the global identifier unless you use a qualified name. The qualifier can be the label of an enclose block, as the example below shows:


<>
DECLARE
birthdate DATE;
BEGIN
DECLARE
birthdate DATE;
BEGIN
...
IF birthdate = outer.birthdate THEN...


As the next illustration shown below, the qualifier can also be the name of an enclosing subprogram:


PROCEDURE check_credit (...) IS
rating NUMBER;
FUNCTION valid (...) RETURN BOOLEAN IS
rating NUMBER;
BEGIN
...
IF check_credit.rating < 3 THEN...


Though, within the same scope, a label and a subprogram cannot have the similar name.


Related Discussions:- Scope and visibility- pl/sql

Updating tables in sql, Updating Tables in SQL The topic of updating b...

Updating Tables in SQL The topic of updating by describing the assignment operator, ":=" in Tutorial D. SQL uses a different syntax for assignment, using the key word SET and

Wrapping and unwrapping in sql, Wrapping and unwrapping in SQL Operato...

Wrapping and unwrapping in SQL Operators WRAP and UNWRAP in connection with attributes whose declared types are tuple types. Example shows how extension and projection can be

Need azure crm web application with authentication, Need Azure CRM Web Appl...

Need Azure CRM Web Application with two-factor authentication We presently have a CRM-like database stored on MS Azure that we presently access over an MS Access application. It

Using commit, Using COMMIT The COMMIT statements end the present trans...

Using COMMIT The COMMIT statements end the present transaction and make permanent any changes made during that transaction. Till you commit the changes, other users cannot acc

Delete command - sql, DELETE Command - SQL Loosely speaking, DELETE re...

DELETE Command - SQL Loosely speaking, DELETE removes some existing rows from its target table. Suppose the university decides that course C3 is to be withdrawn. Example shows

Parameter modes, Parameter Modes   To define the behavior of formal pa...

Parameter Modes   To define the behavior of formal parameters you use the parameter modes. The 3 parameter modes, IN, OUT, & IN OUT, can be used with any subprogram. Though, a

Fetching with a cursor, Fetching with a Cursor The FETCH statements re...

Fetching with a Cursor The FETCH statements retrieve the rows in the result set one at a time. After each and every fetch, the cursor advance to the next row in the result set

Difference between implicit and explicit cursor, Implicit Cursor is declare...

Implicit Cursor is declared and used by the oracle environment internally. while the explicit cursor is declared and used by the external user. more over implicitly cursors are no

Processing transactions, Processing Transactions This part describes ho...

Processing Transactions This part describes how to do the transaction processing. You learn the fundamental techniques that safeguard the consistency of your database, involvin

Dbms, DBMS: The answer to this question is of course given in of the t...

DBMS: The answer to this question is of course given in of the theory book. This book is concerned with SQL DBMSs and SQL databases in particular. Soon we will be looking a

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd