Assignment - 11 PDF
Assignment - 11 PDF
PL/SQL Block:
1. Write a program that accepts 2 numbers from the user and interchange
the values of those 2 numbers.
SET SERVEROUTPUT ON
SET FEEDBACK OFF
SET VERIFY OFF
C: = A;
A: = B;
B: = C;
DBMS_OUTPUT.PUT_LINE ('The value of 1st no. :- ' || A);
DBMS_OUTPUT.PUT_LINE ('The value of 2nd no. :- ' || B);
END;
/
SET SERVEROUTPUT OFF
SET FEEDBACK ON
SET VERIFY ON
Cursor:
2. Write a program that uses a cursor attribute %ROWCOUNT to display
the name, department and salary of first 10 employees getting the
highest salary. (Use Explicit Cursor)
SET SERVEROUTPUT ON
SET FEEDBACK OFF
SET VERIFY OFF
DECLARE
CURSOR CUR_EMP2 IS SELECT EMP_NO, DEPT_NO, SAL FROM EMP, DEPT WHERE
DEPT.DEPT_NO = EMP.DEPTNO ORDER BY SAL DESC;
V_NAME EMP.EMP_NAME%TYPE;
V_DEPTNO EMP.DEPT_NO%TYPE;
V_SAL EMP.SAL%TYPE;
BEGIN
OPEN CUR_EMP2;
LOOP
FETCH CUR_EMP2 INTO V_NAME, V_DEPTNO, V_SAL;
EXIT WHEN CUR_EMP2%ROWCOUNT = 10 OR CUR_EMP2%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (V_NAME||’ ‘||V_DEPTNO||’ ‘||V_SAL);
END LOOP;
CLOSE CUR_EMP2;
END;
/
3.0 Write a program using a cursor FOR loop to display name and the basic
salary of 3 highest paid employees. (Use Cursor For Loop)
SET SERVEROUTPUT ON
SET FEEDBACK OFF
SET VERIFY OFF
DECLARE
CURSOR CUR_EMP5 IS SELECT * FROM EMP ORDER BY SAL DESC;
M_EMPREC EMP%ROWTYPE;
I NUMBER (3): = 1;
BEGIN
FOR M_EMPRECH IN CUR_EMP5 LOOP
DBMS_OUTPUT.PUT_LINE (RPAD (M_EMPREC.EMP_NAME,15) || M_EMPREC.SAL);
I: = I+1;
EXIT WHEN I > 3;
END LOOP;
END;
/
Procedures
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE SEARCH_EMP
(VEMPNO IN EMP.ENO%TYPE, VNAME OUT VARCHAR2)
IS
BEGIN
SELECT ENAME INTO VNAME FROM EMP WHERE ENO = VEMPNO;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR(VEMPNO) || 'NOT FOUND');
END;
/
SQL>@P_SEARCH_EMP.SQL;
SQL>VARIABLE EMP_NAME VARCHAR2;
SQL>EXECUTE SEARCH_EMP(101,EMP_NAME);
SQL>PRINT EMP_NAME;
SET SERVEROUTPUT ON
DECLARE
M_NAME EMP.ENAME%TYPE;
BEGIN
SEARCH_EMP (1000, M_NAME);
DBMS_OUTPUT.PUT_LINE (‘ THE EMPLOYEE NO 1000’ || M_NAME);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR (VEMPNO) || 'NOT FOUND');
END;
/