PL/SQL - LOOPS
SImple LOOP syntax:
LOOP
---
---
EXIT WHEN condition;
END LOOP;
write a PL/SQL code block that displays the table of a number:
SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
i number;
res number;
BEGIN
/*take user input*/
n:=&n;
/*initialize loop var*/
i:=1;
/*loop*/
LOOP
/*caluculate*/
res:=n*i;
/*display*/
DBMS_OUTPUT.PUT_LINE(res);
/*increment*/
i:=i+1;
/*exit condition*/
EXIT WHEN i=11;
END LOOP;
END;
/
-------------------------------------------------------------------------------------
/*
write the program to display the table of a number
*/
SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
i number := 1;
res number;
BEGIN
/*user input*/
n := &n;
/*Iterate using simple loop*/
LOOP
res := n * i;
i := i + 1;
DBMS_OUTPUT.PUT_LINE(res);
EXIT WHEN i > 10;
END LOOP;
END;
/
///////////////////////////////////////////////////////////////////
SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
i number := 1;
res number;
BEGIN
/*user input*/
n := &n;
/*Iterate using simple loop*/
LOOP
res := n * i;
i := i + 1;
DBMS_OUTPUT.PUT_LINE(res);
IF i > 10 THEN
EXIT;
END IF;
END LOOP;
END;
/
///////////////////////////////////////////////////////////////////////////
FOR Loop Syntax:
FOR countervar IN minval..maxval LOOP
---
---
END LOOP;
We cannot manually increment / decrement the counter variable value
We do not need to declare the counter var.
write a PL/SQL code block that displays the table of a number:
SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
res number;
BEGIN
/*take user input*/
n:=&n;
/*loop*/
FOR i IN 1..10 LOOP
/*caluculate*/
res:=n*i;
/*display*/
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
END;
/
/*
Display the table of a no.
*/
SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
res number;
BEGIN
/*user input*/
n := &n;
/*iterate*/
FOR i IN 1..10 LOOP
res := n * i;
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
END;
/
SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
res number;
BEGIN
/*user input*/
n := &n;
/*iterate*/
FOR i IN REVERSE 1..10 LOOP
res := n * i;
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
END;
/
---------------------------------------------------------------------------


0 Comments