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

Assignments in pl/sql, Assignments in pl/sql The Variables and constants...

Assignments in pl/sql The Variables and constants are initialized every time a block or subprogram is entered. By default, the variables are initialized to NULL. Therefore, unle

Difference between ttitle and btitle, TTITLE and BTITLE are commands in Pl-...

TTITLE and BTITLE are commands in Pl-SQL to control report headings and footers. This Ttitle & Btitle are mainly used on creating SQL*PLUS report. Ttitle is used for toptitle headi

Using exists - collection methods, Using EXISTS The EXISTS(n) returns ...

Using EXISTS The EXISTS(n) returns TRUE if the nth element in a collection exist. Or else, EXISTS(n) returns FALSE. Primarily, you use EXISTS with DELETE to maintain the spars

Need to change mysql query to pdo, Need to change mysql query to PDO Pro...

Need to change mysql query to PDO Project Description: I want someone to convert me 1 .php file that includes some sql/mysql stuff to PDO is a very small file. Skills requ

Referencing records, Referencing Records Unlike the elements in a coll...

Referencing Records Unlike the elements in a collection, that are accessed using subscripts, the fields in a record are accessed by name. To reference an individual field, you

Seeking a programmer to design a legal document, Seeking a programmer to de...

Seeking a programmer to design a legal document with pre-existing fields that could allow the auto-population of client(s) information (i.e. Name, Account Number, Address etc.) int

Exception handling, Exception handling In the PL/SQL, a warning or erro...

Exception handling In the PL/SQL, a warning or error condition is known as an exception. The Exceptions can be internally defined (by the run-time system) or user defined. The

Functions in pl/sql, Functions   The function is a subprogram that cal...

Functions   The function is a subprogram that calculates a value. The Functions and procedures are structured similar, except that the functions have a RETURN clause. You can

Overriding default locking, Overriding Default Locking By default, the...

Overriding Default Locking By default, the Oracle locks the data structures for you automatically. Though, you can request exact data locks on rows or tables when it is to you

Transaction control, Transaction Control The Oracle is transaction orie...

Transaction Control The Oracle is transaction oriented; that is, Oracle uses the transactions to make sure the data integrity. The transaction is a sequence of SQL data manip

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