PL/SQL Interview Question And Answers

 
Freshers ResourcesQA and TestingData WareHousing
Computer ScienceAnalysis DesignOperating Systems
C++VC++Mainframes
Sap/AbapDatabasesHR
JavaJobsC#

.Net

ASPVB

  1. Find out the selling cost average for packages developed in Oracle.


a. SELECT AVG(SCOST) FROM SOFTWARE WHERE DEVIN = 'ORACLE';

  1. Display the names, ages and experience of all programmers.

b. SELECT PNAME,TRUNC(MONTHS_BETWEEN(SYSDATE,DOB)/12) "AGE", TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12) "EXPERIENCE" FROM PROGRAMMER;


3. Display the names of those who have done the PGDCA course.


c. . SELECT PNAME FROM STUDIES WHERE COURSE = 'PGDCA';


4. What is the highest number of copies sold by a package?


d. SELECT MAX(SOLD) FROM SOFTWARE;


5. Display the names and date of birth of all programmers born in April.


e. SELECT PNAME, DOB FROM PROGRAMMER WHERE DOB LIKE '%APR%';


6. Display the lowest course fee.


f. SELECT MIN(CCOST) FROM STUDIES;


7. How many programmers have done the DCA course.


g. SELECT COUNT(*) FROM STUDIES WHERE COURSE = 'DCA';


8. How much revenue has been earned through the sale of packages developed in C.


i. SELECT SUM(SCOST*SOLD-DCOST) FROM SOFTWARE GROUP BY DEVIN HAVING DEVIN = 'C';


9. Display the details of software developed by Rakesh.


k. SELECT * FROM SOFTWARE WHERE PNAME = 'RAKESH';


10. How many programmers studied at Pentafour.


l. SELECT * FROM STUDIES WHERE SPLACE = 'PENTAFOUR';


11. Display the details of packages whose sales crossed the 5000 mark.


m. SELECT * FROM SOFTWARE WHERE SCOST*SOLD-DCOST > 5000;


12. Find out the number of copies which should be sold in order to recover the development cost of each package.


n. SELECT CEIL(DCOST/SCOST) FROM SOFTWARE;


13. Display the details of packages for which the development cost has been recovered.


o. SELECT * FROM SOFTWARE WHERE SCOST*SOLD >= DCOST;


14. What is the price of costliest software developed in VB?


p. SELECT MAX(SCOST) FROM SOFTWARE GROUP BY DEVIN HAVING DEVIN = 'VB';

15. How many packages were developed in Oracle ?


q. SELECT COUNT(*) FROM SOFTWARE WHERE DEVIN = 'ORACLE';


16. How many programmers studied at PRAGATHI?


r. SELECT COUNT(*) FROM STUDIES WHERE SPLACE = 'PRAGATHI';


17. How many programmers paid 10000 to 15000 for the course?


s. SELECT COUNT(*) FROM STUDIES WHERE CCOST BETWEEN 10000 AND 15000;

18. What is the average course fee?


t. SELECT AVG(CCOST) FROM STUDIES;


19. Display the details of programmers knowing C.


u. . SELECT * FROM PROGRAMMER WHERE PROF1 = 'C' OR PROF2 = 'C';


20. How many programmers know either C or Pascal?


v. SELECT * FROM PROGRAMMER WHERE PROF1 IN ('C','PASCAL') OR PROF2 IN ('C','PASCAL');


21. How many programmers don’t know C and C++?


w. SELECT * FROM PROGRAMMER WHERE PROF1 NOT IN ('C','C++') AND PROF2 NOT IN ('C','C++');


22. How old is the oldest male programmer?


x. SELECT TRUNC(MAX(MONTHS_BETWEEN(SYSDATE,DOB)/12)) FROM PROGRAMMER WHERE SEX = 'M';


23. What is the average age of female programmers?


y. SELECT TRUNC(AVG(MONTHS_BETWEEN(SYSDATE,DOB)/12)) FROM PROGRAMMER WHERE SEX = 'F';


24. Calculate the experience in years for each programmer and display along with their names in descending order.


z. SELECT PNAME, TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12) FROM PROGRAMMER ORDER BY PNAME DESC;


25. Who are the programmers who celebrate their birthdays during the current month?


A. SELECT PNAME FROM PROGRAMMER WHERE TO_CHAR(DOB,'MON') = TO_CHAR(SYSDATE,'MON');


26. How many female programmers are there?


B. SELECT COUNT(*) FROM PROGRAMMER WHERE SEX = 'F';


27. What are the languages known by the male programmers?


C. SELECT DISTINCT(PROF1) FROM PROGRAMMER WHERE SEX = 'M';


28. What is the average salary?


D. SELECT AVG(SAL) FROM PROGRAMMER;


29. How many people draw 5000 to 7500?


E. SELECT COUNT(*) FROM PROGRAMMER WHERE SAL BETWEEN 5000 AND 7500;


30. Display the details of those who don’t know C, C++ or Pascal.


F. SELECT * FROM PROGRAMMER WHERE PROF1 NOT IN ('C','C++','PASCAL') AND PROF2 NOT IN ('C','C++','PASCAL');


31. Display the costliest package developed by each programmer.


G. SELECT PNAME,TITLE,SCOST FROM SOFTWARE WHERE SCOST IN (SELECT MAX(SCOST) FROM SOFTWARE GROUP BY PNAME);


32. Produce the following output for all the male programmers


H..SELECT 'Mr.' || PNAME || ' - has ' || TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12) || ' years of experience' “Programmer” FROM PROGRAMMER WHERE SEX = 'M' UNION SELECT 'Ms.' || PNAME || ' - has ' || TRUNC (MONTHS_BETWEEN (SYSDATE,DOJ)/12) || ' years of experience' “Programmer” FROM PROGRAMMER WHERE SEX = 'F';
II . SCHEMA :

Table 1 : DEPT

DEPTNO (NOT NULL , NUMBER(2)), DNAME (VARCHAR2(14)),
LOC (VARCHAR2(13)

Table 2 : EMP

EMPNO (NOT NULL , NUMBER(4)), ENAME (VARCHAR2(10)),
JOB (VARCHAR2(9)), MGR (NUMBER(4)), HIREDATE (DATE),
SAL (NUMBER(7,2)), COMM (NUMBER(7,2)), DEPTNO (NUMBER(2))

MGR is the empno of the employee whom the employee reports to. DEPTNO is a foreign key.
QUERIES
1. List all the employees who have at least one person reporting to them.
2. List the employee details if and only if more than 10 employees are present in department no 10.
3. List the name of the employees with their immediate higher authority.
4. List all the employees who do not manage any one.
5. List the employee details whose salary is greater than the lowest salary of an employee belonging to deptno 20.

6. List the details of the employee earning more than the highest paid manager.
7. List the highest salary paid for each job.
8. Find the most recently hired employee in each department.
9. In which year did most people join the company? Display the year and the number of employees.
10. Which department has the highest annual remuneration bill?
11. Write a query to display a ‘*’ against the row of the most recently hired employee.
12. Write a correlated sub-query to list out the employees who earn more than the average salary of their department.
13. Find the nth maximum salary.
14. Select the duplicate records (Records, which are inserted, that already exist) in the EMP table.
15. Write a query to list the length of service of the employees (of the form n years and m months).

KEYS:

1. SELECT DISTINCT(A.ENAME) FROM EMP A, EMP B WHERE A.EMPNO = B.MGR; or SELECT ENAME FROM EMP WHERE EMPNO IN (SELECT MGR FROM EMP);
2. SELECT * FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM EMP GROUP BY DEPTNO HAVING COUNT(EMPNO)>10 AND DEPTNO=10);
3. SELECT A.ENAME "EMPLOYEE", B.ENAME "REPORTS TO" FROM EMP A, EMP B WHERE A.MGR=B.EMPNO;
4. SELECT * FROM EMP WHERE EMPNO IN ( SELECT EMPNO FROM EMP MINUS SELECT MGR FROM EMP);
5. SELECT * FROM EMP WHERE SAL > ( SELECT MIN(SAL) FROM EMP GROUP BY DEPTNO HAVING DEPTNO=20);
6. SELECT * FROM EMP WHERE SAL > ( SELECT MAX(SAL) FROM EMP GROUP BY JOB HAVING JOB = 'MANAGER' );
7. SELECT JOB, MAX(SAL) FROM EMP GROUP BY JOB;
8. SELECT * FROM EMP WHERE (DEPTNO, HIREDATE) IN (SELECT DEPTNO, MAX(HIREDATE) FROM EMP GROUP BY DEPTNO);
9. SELECT TO_CHAR(HIREDATE,'YYYY') "YEAR", COUNT(EMPNO) "NO. OF EMPLOYEES" FROM EMP GROUP BY TO_CHAR(HIREDATE,'YYYY') HAVING COUNT(EMPNO) = (SELECT MAX(COUNT(EMPNO)) FROM EMP GROUP BY TO_CHAR(HIREDATE,'YYYY'));
10. SELECT DEPTNO, LPAD(SUM(12*(SAL+NVL(COMM,0))),15) "COMPENSATION" FROM EMP GROUP BY DEPTNO HAVING SUM( 12*(SAL+NVL(COMM,0))) = (SELECT MAX(SUM(12*(SAL+NVL(COMM,0)))) FROM EMP GROUP BY DEPTNO);
11. SELECT ENAME, HIREDATE, LPAD('*', "RECENTLY HIRED" FROM EMP WHERE HIREDATE = (SELECT MAX(HIREDATE) FROM EMP) UNION SELECT ENAME NAME, HIREDATE, LPAD(' ',15) "RECENTLY HIRED" FROM EMP WHERE HIREDATE != (SELECT MAX(HIREDATE) FROM EMP);
12. SELECT ENAME,SAL FROM EMP E WHERE SAL > (SELECT AVG(SAL) FROM EMP F WHERE E.DEPTNO = F.DEPTNO);
13. SELECT ENAME, SAL FROM EMP A WHERE &N = (SELECT COUNT (DISTINCT(SAL)) FROM EMP B WHERE A.SAL<=B.SAL);
14. SELECT * FROM EMP A WHERE A.EMPNO IN (SELECT EMPNO FROM EMP GROUP BY EMPNO HAVING COUNT(EMPNO)>1) AND A.ROWID!=MIN (ROWID));
15. SELECT ENAME "EMPLOYEE",TO_CHAR(TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12))||' YEARS '|| TO_CHAR(TRUNC(MOD(MONTHS_BETWEEN (SYSDATE, HIREDATE),12)))||' MONTHS ' "LENGTH OF SERVICE" FROM EMP;