Advertisement
saiRo199

sql_interview_store_proc_dep_wise_max_sal_emp

Jun 25th, 2023 (edited)
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.04 KB | Source Code | 0 0
  1. CREATE OR REPLACE PROCEDURE dep_wise_max_sal_emp(dept_name IN VARCHAR,sal_rnk IN int)
  2. AS
  3. emp_fname hr.employees.first_name%TYPE;
  4. emp_lname hr.employees.last_name%TYPE;
  5. emp_salary hr.employees.salary%TYPE;
  6. BEGIN
  7.     SELECT first_name,last_name,salary INTO emp_fname,emp_lname,emp_salary
  8.     FROM (
  9.         SELECT first_name,last_name,salary,DENSE_RANK() OVER (PARTITION BY department_name ORDER BY salary DESC) AS rnk
  10.         FROM hr.employees,hr.departments
  11.         WHERE hr.employees.department_id=hr.departments.department_id AND department_name=INITCAP(LOWER(dept_name))
  12.     ) WHERE rnk=sal_rnk;
  13.  
  14.     DBMS_OUTPUT.PUT_LINE('employee_name:'|| emp_fname||' '||emp_lname);
  15.     DBMS_OUTPUT.PUT_LINE('employee_salary:'|| emp_salary);
  16.  
  17. EXCEPTION
  18.     WHEN NO_DATA_FOUND THEN
  19.     DBMS_OUTPUT.PUT_LINE('No records avaialble');
  20.     WHEN TOO_MANY_ROWS THEN
  21.     DBMS_OUTPUT.PUT_LINE('More than one matches');
  22. END;
  23.  
  24.  
  25. exec dep_wise_max_sal_emp('ExeCutive',2);
  26. exec dep_wise_max_sal_emp('HR',2);
  27. exec dep_wise_max_sal_emp('SalEs',2);
  28. exec dep_wise_max_sal_emp('Purchasing',1);
  29.  
Tags: PLSQL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement