1) Swapping of Two Numbers and Also Without Using 3 Variables

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

PLSQL Programs by SIVAJI

1) Swapping of two numbers and also without using 3rd variables

SET SERVEROUTPUT ON;


CREATE OR REPLACE PROCEDURE SWAP_PROGRAM (N1 NUMBER,N2 NUMBER) IS
C NUMBER;
A NUMBER:=N1;
B NUMBER:=N2;
BEGIN
DBMS_OUTPUT.PUT_LINE('BEFORE SWAPPING '||'A='||A||' AND '||'B='||B);
C:=A;
A:=B;
B:=C;
DBMS_OUTPUT.PUT_LINE ('AFTER SWAPPING '||'A='||A||' AND '||'B='||B);
END;
/
EXEC SWAP_PROGRAM (20, 30);
CALL SWAP_PROGRAM (20, 30); ------ sql*plus Command

-------------------WITHOUT USING 3RD VARIABLE ----------------------------------------


CREATE OR REPLACE PROCEDURE SWAP_PROGRAM1 (N1 NUMBER,N2 NUMBER) IS
A NUMBER:=N1;
B NUMBER:=N2;
BEGIN
DBMS_OUTPUT.PUT_LINE('BEFORE SWAPPING '||'A='||A||' AND '||'B='||B);
A:=A+B;
B:=A-B;
A:=A-B;
DBMS_OUTPUT.PUT_LINE ('AFTER SWAPPING '||'A='||A||' AND '||'B='||B);
END;
/
EXEC SWAP_PROGRAM1 (30, 40);
2) REVERSE THE STRING / NUMBER

SET SERVEROUTPUT ON;


DECLARE
STR_NUM_CHK VARCHAR2 (20):='&STR_NUM_CHK';
V_STR_NUM_CHK VARCHAR2 (20);
BEGIN
SELECT REVERSE (STR_NUM_CHK) INTO V_STR_NUM_CHK FROM DUAL;
DBMS_OUTPUT.PUT_LINE ('REVERSE OF STRING/NUMBER IS '||V_STR_NUM_CHK);
END;
/
CREATE OR REPLACE FUNCTION REVERSE_NUM_STR (V_NUM_STR VARCHAR2) RETURN VARCHAR2 IS

REV_STR_NUM VARCHAR2 (30);


BEGIN
FOR I IN REVERSE 1.. LENGTH (V_NUM_STR)
LOOP
REV_STR_NUM:=REV_STR_NUM||SUBSTR (V_NUM_STR, I, 1);
END LOOP;
RETURN REV_STR_NUM;
DBMS_OUTPUT.PUT_LINE ('REVERSE STRING/NUMBER IS: '||REV_STR_NUM);
END;
/

SELECT REVERSE_NUM_STR (341) FROM DUAL;

PLSQL Programs by SIVAJI


PLSQL Programs by SIVAJI

SELECT REVERSE_NUM_STR ('MINKU') FROM DUAL;


DECLARE
N1 NUMBER: ='&N';
REV_NUM NUMBER: =0;
R NUMBER;
BEGIN
WHILE N1>0
LOOP
R: =N1 MOD 10;
REV_NUM:=R+ (REV_NUM*10);
N1:=FLOOR (N1/10);
END LOOP;
DBMS_OUTPUT.PUT_LINE ('REVERSE NUMBER IS: '||REV_NUM);
END;
/
3) PALINDROME OR NOT

DECLARE
STR_NUM VARCHAR2 (10):='&N';
REV_STR_NUM VARCHAR2 (10);
BEGIN
FOR I IN REVERSE 1..LENGTH (STR_NUM)
LOOP
REV_STR_NUM:=REV_STR_NUM||SUBSTR (STR_NUM, I, 1);
END LOOP;
IF REV_STR_NUM=STR_NUM THEN
DBMS_OUTPUT.PUT_LINE (REV_STR_NUM ||''||' IS PALINDROME');
ELSE
DBMS_OUTPUT.PUT_LINE (REV_STR_NUM ||''||' IS NOT PALINDROME');
END IF;
END;
/
4) WAP TO FIND THE FACTIORAL OF GIVEN NUMBERS

5) FIBONACCI OF GIVEN NUMBERS

14) WAP for Dynamic Numbers Additions

S1: CREATE OR REPLACE TYPE ADD_NUM IS TABLE OF NUMBER;


S2: CREATE OR REPLACE PROCEDURE DYNAMIC_ADD (V_NUMBERS ADD_NUM) IS
SUM NUMBER;
BEGIN
FOR I IN 1..L V_NUMBERS. COUNT
LOOP
SUM: =SUM+ V_NUMBERS (I);
END LOOP;
DBMS_OUTPUT.PUT_LINE (‘DYNAMIC SUM IS:: ’||SUM);
END;
/

PLSQL Programs by SIVAJI


PLSQL Programs by SIVAJI

S3: Execution of program

DECLARE
P ADD_NUM:=ADD_NUM (1, 2, 4);
BEGIN
DYNAMIC_ADD (P);
END;
/
5) UPDATE ALL SALARIES WITH SAME ONE....DIFFERENT VALUES

DECLARE
CURSOR C1 IS SELECT * FROM EMP FOR UPDATE OF SAL
REC C1%ROWTYPE;
INCREAMENT NUMBER: =500;
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO REC;
EXIT WHEN C1%NOTFOUND;
UPDATE EMP SET SAL=SAL+ INCREAMENT WHERE CURRENT OF C1;
INCREAMENT: = INCREAMENT+500;
END LOOP;
CLOSE C1;
END;
/

6) Create a package to store the following procedure for multiplication table, even-odd,
Function for factorial and function for palindrome?

CREATE OR REPLACE PACKAGE DATA IS


PROCEDURE MULT(A NUMBER);
PROCEDURE EVEN_ODD(N NUMBER);
FUNCTION FACT(N NUMBER) RETURN NUMBER;
PRAGMA RESTRICT_REFERENCES(FACT,WNDS);
FUNCTION PALEN(SRT VARCHAR2) RETURN VARCHAR2;
PRAGMA RESTRICT_REFERENCES(PALEN,WNDS);
END;
/
CREATE OR REPLACE PACKAGE BODY DATA IS
PROCEDURE MULT(A NUMBER) IS
M NUMBER;
BEGIN
FOR I IN 1..10
LOOP
M:=A*I;
DBMS_OUTPUT.PUT_LINE(A||'*'||I||'='||M);
END LOOP;
END;

PROCEDURE EVEN_ODD(N NUMBER) IS


BEGIN

PLSQL Programs by SIVAJI


PLSQL Programs by SIVAJI

IF MOD(N,2)=0 THEN
DBMS_OUTPUT.PUT_LINE(N||' IS EVEN NUMBER');
ELSE
DBMS_OUTPUT.PUT_LINE(N||' IS NOT EVEN NUMBER');
END IF;
END;

FUNCTION FACT(N NUMBER) RETURN NUMBER IS


F NUMBER:=1;
BEGIN
FOR I IN 1..N
LOOP
F:=F*I;
END LOOP;
RETURN F;
END;

FUNCTION PALEN(SRT VARCHAR2) RETURN VARCHAR2 IS


S CHAR;
V VARCHAR2(50);
BEGIN
FOR I IN REVERSE 1..LENGTH(SRT)
LOOP
S:=SUBSTR(SRT,I,1);
V:=V||S;
END LOOP;
IF V=SRT THEN
RETURN 'PALINDROME';
ELSE
RETURN 'NOT PALINDROME';
END IF;
END;
END;
/

PLSQL Programs by SIVAJI


PLSQL Programs by SIVAJI

PLSQL Programs by SIVAJI


PLSQL Programs by SIVAJI

PLSQL Programs by SIVAJI

You might also like