Solutions
Solutions
Lab 06
CSE 4508
Empty Block
BEGIN
NULL;
END;
/
SQL
Output:
Hello World
Output:
Hello World.
DECLARE
my_var VARCHAR2(30);
BEGIN
my_var := '&i';
dbms_output.put_line('Hello ' || my_var);
END;
/
SQL
Output:
DECLARE
c CHAR(32767) := 'hello';
v VARCHAR2(32767) := 'hello';
BEGIN
dbms_output.put_line('c is [' || LENGTH(c) || ']') ;
dbms_output.put_line('v is [' || LENGTH(v) || ']') ;
v := v || ' ';
dbms_output.put_line ('v is [' || LENGTH(v) || ']');
END;
/
SQL
Output:
c is [32767]
v is [5]
v is [6]
Records
DECLARE
TYPE demo_record_type IS RECORD
(id NUMBER DEFAULT 1, value VARCHAR2(10) := 'One');
demo DEMO_RECORD_TYPE;
BEGIN
dbms_output.put_line('[' || demo.id || '] [' || demo.value || ']');
END;
/
SQL
Output:
[1] [One]
DECLARE
X NUMBER;
BEGIN
X := 10;
IF (X = 0) THEN
dbms_output.put_line('The value of x is 0');
ELSIF(X between 1 and 10) THEN
dbms_output.put_line('The value of x is between 1 and 10');
ELSE
dbms_output.put_line('The value of x is greater than 10');
END IF;
END;
/
SQL
Output:
DECLARE
selector NUMBER := 1;
BEGIN
CASE selector
WHEN 0 THEN
dbms_output.put_line('Case 0!');
WHEN 1 THEN
dbms_output.put_line('Case 1!');
ELSE
dbms_output.put_line('No match!');
END CASE;
END;
/
SQL
Output:
Case 1!
DECLARE
x number := 10;
BEGIN
LOOP
dbms_output.put_line(x);
x := x + 10;
IF x > 50 THEN
exit;
END IF;
END LOOP;
-- after exit, control resumes here
dbms_output.put_line('After Exit x is: ' || x);
END;
/
SQL
Output:
10
20
30
40
50
After Exit x is: 60
DECLARE
x number := 10;
BEGIN
LOOP
dbms_output.put_line(x);
x := x + 10;
exit WHEN x > 50;
END LOOP;
-- after exit, control resumes here
dbms_output.put_line('After Exit x is: ' || x);
END;
/
SQL
Output:
10
20
30
40
50
After Exit x is: 60
PL/SQL procedure successfully completed.
TEXT
FOR Loops
DECLARE
a number(2);
BEGIN
FOR a in 10 .. 20 LOOP
dbms_output.put_line('value of a: ' || a);
END LOOP;
END;
/
SQL
Output:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
value of a: 20
DECLARE
a number(2);
BEGIN
FOR a IN REVERSE 10 .. 20 LOOP
dbms_output.put_line('value of a: ' || a);
END LOOP;
END;
/
SQL
Output:
value of a: 20
value of a: 19
value of a: 18
value of a: 17
value of a: 16
value of a: 15
value of a: 14
value of a: 13
value of a: 12
value of a: 11
value of a: 10
WHILE Loop
DECLARE
a number(2) := 10;
BEGIN
WHILE a < 20 LOOP
dbms_output.put_line('value of a: ' || a);
a := a + 1;
END LOOP;
END;
/
SQL
Output:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19