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
)