Open In App

PL/SQL GOTO Statement

PL/SQL also known as Procedural Language/Structured Query Language, PL/SQL is a powerful programming language used in Oracle databases to do interaction with data. One of its features is the GOTO statement, which helps control how a program flows by allowing it to jump to specific statements within the same part of the program.

What is the GOTO Statement in PL/SQL?

The GOTO statement within PL/SQL serves as an important programming construct, allowing the redirection of code execution to a labeled section within the same block. GOTO statement allows us to modify the sequential order of our code, providing a means to alter the program’s flow. However, excessive usage of the GOTO statement can result in various drawbacks that impact code quality and readability.



How Does the GOTO Statement Work?

The GOTO statement within PL/SQL serves as a programming feature instructing a program to shift control to a designated portion of code identified by a label. Usually, this label denotes a distinct line or block of code within the program. Upon encountering the GOTO statement during program execution, the control flow skips to the labeled position, enabling the code to resume execution from that particular point

GOTO Statements Work

GOTO Statement in PL/SQL

The GOTO statement in PL/SQL allows for an unconditional transfer of control within the same subprogram to a labeled statement. Its syntax is as follows:



GOTO label;

<< label >>

statement;

Restrictions with the GOTO Statement

Understanding the limitations of the GOTO statement is crucial:

PL/SQL Code Using the GOTO Statement Along with an Explanation

DECLARE
a NUMBER := 1;
BEGIN
<<my_label>>
-- Displaying values from 1 to 5
WHILE a <= 5 LOOP
DBMS_OUTPUT.PUT_LINE('Value of a: ' || a);
a := a + 1;

IF a = 4 THEN
GOTO my_label; -- Redirects control to the label 'my_label'
END IF;
END LOOP;
END;

Output

Value of a: 1
Value of a: 2
Value of a: 3
Value of a: 4
Value of a: 5

Output

Explanation

Example

DECLARE
num NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('Welcome to the Program');
num := -2;

IF num > 0 THEN
DBMS_OUTPUT.PUT_LINE('You entered a positive number.');
GOTO end_of_program;
ELSE
DBMS_OUTPUT.PUT_LINE('You entered either zero or a negative number.');
END IF;

<<end_of_program>>
DBMS_OUTPUT.PUT_LINE('End of the Program');
END;

Output:

Output

Explanation of the Code

Conclusion

In conclusion, the GOTO statement in PL/SQL provides a means to control program flow by transferring to labeled statements. However, its usage is discouraged due to its potential to complicate code readability and maintainability in future and if someone else other than the person who has written the code tries to read the code it becomes tough for him the understand. It’s essential to employ structured programming techniques wherever possible to enhance code quality.

Article Tags :