Anda di halaman 1dari 2

audit_actions

stmt_audit_option_map
table_privilege_map
system_privilege_map
help
PLS_INTEGER
************using bulk collect & For all **************************
CREATE OR REPLACE PROCEDURE increase_salary_bulk (
department_id_in IN emp.EMPNO%TYPE,
increase_pct_in
IN NUMBER)
IS
TYPE employee_ids_t IS TABLE OF emp.empno%TYPE
INDEX BY PLS_INTEGER;
l_employee_ids employee_ids_t;
l_eligible_ids employee_ids_t;
BEGIN
SELECT empno
BULK COLLECT INTO l_employee_ids
FROM emp
WHERE deptno = department_id_in;
FOR indx IN 1 .. l_employee_ids.COUNT
LOOP
UPDATE emp
SET sal = sal + sal * increase_pct_in
WHERE emp.empno = l_employee_ids (indx);
END LOOP;
END increase_salary_bulk;
/
***************example of package program*********************
CREATE PACKAGE personnel AS
TYPE staff_list IS TABLE OF employees.empno%TYPE;
PROCEDURE award_bonuses (empleos_buenos IN staff_list);
END personnel;
/
CREATE PACKAGE BODY personnel AS
PROCEDURE award_bonuses (empleos_buenos staff_list) IS
BEGIN
FOR i IN empleos_buenos.FIRST..empleos_buenos.LAST
LOOP
UPDATE employees SET sal = sal + 100
WHERE employees.empno = empleos_buenos(i);
END LOOP;
END;
END;
/
****************2nd highest salary***************************
SELECT * FROM Emp Emp1
WHERE (1) =
(
SELECT COUNT(DISTINCT(Emp2.Sal))
FROM Emp Emp2 WHERE Emp2.Sal > Emp1.Sal
)

*****************nth highest salay*******************************


SELECT *
FROM Emp Emp1
WHERE (N-1) =
(
SELECT COUNT(DISTINCT(Emp2.Sal))
FROM Emp Emp2
WHERE Emp2.Sal > Emp1.Sal)
/
example for 6th highest salary (N=6)
SELECT *
FROM Emp Emp1
WHERE (5) =
(
SELECT COUNT(DISTINCT(Emp2.Sal))
FROM Emp Emp2
WHERE Emp2.Sal > Emp1.Sal)
/
*****************nth highest salay*******************************
SELECT

empno, ename, sal, deptno


FROM (SELECT e1.*, DENSE_RANK () OVER (ORDER BY sal DESC) rank
FROM emp e1)
WHERE rank = 3

Anda mungkin juga menyukai