Wednesday, January 14, 2009

Demonstrate PL/SQL Block and its working

--Program to demonstrate the if else end if construct
SET SERVEROUTPUT ON;
DECLARE
NUM1 NUMBER(2);
NUM2 NUMBER(2);
TEMP NUMBER(2);
BEGIN
NUM1 := &NUMBER1;
NUM2 := &NUMBER2;
DBMS_OUTPUT.ENABLE;
IF NUM1 > NUM2 THEN
TEMP := NUM1;
NUM1 := NUM2;
NUM2 := TEMP;
DBMS_OUTPUT.PUT_LINE('NUMBERS SWAPPED. NOW NUMBER1 ='NUM1'AND NUMBER2 = 'NUM2);
ELSE
NUM1 := 2*NUM1;
NUM2 := 2*NUM2;
DBMS_OUTPUT.PUT_LINE('NUMBERS DOUBLED. NOW NUMBER1 ='NUM1'AND NUMBER2 = 'NUM2);
END IF;
END;
/
@ c:\sql10
Enter value for number1: 10
old 6: NUM1 := &NUMBER1;
new 6: NUM1 := 10;
Enter value for number2: 15
old 7: NUM2 := &NUMBER2;
new 7: NUM2 := 15;
NUMBERS DOUBLED. NOW NUMBER1 =20AND NUMBER2 = 30
PL/SQL procedure successfully completed.
@ c:\sql10
Enter value for number1: 15
old 6: NUM1 := &NUMBER1;
new 6: NUM1 := 15;
Enter value for number2: 10
old 7: NUM2 := &NUMBER2;
new 7: NUM2 := 10;
NUMBERS SWAPPED. NOW NUMBER1 =10AND NUMBER2 = 15
PL/SQL procedure successfully completed.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--PROGRAM ILLUSTRATING IF_THEN_ELSIF CONSTRUCT USING A SIMPLE CALCULATOR.
DECLARE
NUM1 NUMBER(2);
NUM2 NUMBER(2);
RESULT NUMBER(4);
OPER CHAR(1);
BEGIN
NUM1 := &NUMBER1;
NUM2 := &NUMBER2;
OPER := &ARITHEMATIC_OPERATOR;
IF OPER = '+' THEN
RESULT := NUM1 + NUM2;
ELSIF OPER = '-' THEN
RESULT := NUM1 - NUM2;
ELSIF OPER = '*' THEN
RESULT := NUM1 * NUM2;
ELSIF OPER = '/' THEN
RESULT := NUM1 / NUM2;
END IF;
DBMS_OUTPUT.PUT_LINE('RESULT IS 'RESULT);
END;
/
@ c:\sql10
Enter value for number1: 10
old 7: NUM1 := &NUMBER1;
new 7: NUM1 := 10;
Enter value for number2: 15
old 8: NUM2 := &NUMBER2;
new 8: NUM2 := 15;
Enter value for arithematic_operator: '+'
old 9: OPER := &ARITHEMATIC_OPERATOR;
new 9: OPER := '+';
RESULT IS25
PL/SQL procedure successfully completed.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--PROGRAM TO PRINT FIRST N NATURAL NUMBERS & THEIR SUM
DECLARE
NUM NUMBER;
TOT NUMBER:=0;
BEGIN
NUM := &HOW_MANY_NUMBERS;
FOR I IN 1..NUM
LOOP
TOT := TOT + I;
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
DBMS_OUTPUT.PUT_LINE('THE SUM OF FIRST 'NUM' NATURAL NUMBERS IS 'TOT);
END;
/
@ c:\sql10
Enter value for how_many_numbers: 5
old 5: NUM := &HOW_MANY_NUMBERS;
new 5: NUM := 5;
1
2
3
4
5
THE SUM OF FIRST 5 NATURAL NUMBERS IS 15
PL/SQL procedure successfully completed.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--PROGRAM TO PRINT FACTORIAL OF A NUMBER
set serveroutput on;
declare
Num1 number;
Num2 number;
Result number := 1;
begin
Num1:=&Number_1;
Num2 := Num1;
WHILE Num1>1
LOOP
Result := Result*Num1;
Num1 := Num1-1;
END LOOP;
dbms_output.put_line('Factorial of 'Num2' is 'Result);
end;
/
SQL> @ c:\sql10
Enter value for number_1: 5
old 6: Num1:=&Number_1;
new 6: Num1:=5;
Factorial of 5 is 120
PL/SQL procedure successfully completed.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

0 responses:

Corprova | Saroj Hydraulics | AlphaNumeric | durgeshindia