Sie sind auf Seite 1von 7

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

PLSQL Programs by SIVAJI


PLSQL Programs by SIVAJI

BEGIN
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


PLSQL Programs by SIVAJI

PLSQL Programs by SIVAJI

Das könnte Ihnen auch gefallen