CH07 1
CH07 1
v_employee_id employees.employee_id%TYPE;
v_last_name employees.last_name%TYPE;
CURSOR employees_Cursor IS
SELECT employee_id, last_name
FROM employees;
BEGIN
OPEN employees_cursor;
FOR i IN 1..10 LOOP
FETCH employees_cursor
INTO v_employee_id, v_last_name;
DBMS_OUTPUT.PUT_LINE (TO_CHAR (v_employee_id) ||' ' || v_last_name);
END LOOP;
CLOSE employees_cursor;
END ;
-----------------------------------------------------------------------------------
-------
DECLARE
v_employee_id employees.employee_id%TYPE;
v_last_name employees.last_name%TYPE;
CURSOR employees_Cursor IS
SELECT employee_id, last_name
FROM employees;
BEGIN
IF NOT employees_cursor%ISOPEN THEN
OPEN employees_cursor;
END IF;
LOOP
FETCH employees_cursor
INTO v_employee_id, v_last_name;
DBMS_OUTPUT.PUT_LINE (TO_CHAR (v_employee_id) ||' ' || v_last_name);
-- EXIT WHEN employees_cursor%ROWCOUNT > 10;
EXIT WHEN employees_cursor%NOTFOUND;
END LOOP;
CLOSE employees_cursor;
END ;
-----------------------------------------------------------------------------------
------
DECLARE
CURSOR employees_cursor IS
SELECT employee_id, last_name
FROM employees;
employees_record employees_cursor%ROWTYPE;
BEGIN
IF NOT employees_cursor%ISOPEN THEN
OPEN employees_cursor;
END IF;
LOOP
FETCH employees_cursor
INTO employees_record;
DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' ||
employees_record.last_name);
EXIT WHEN employees_cursor%ROWCOUNT > 10;
END LOOP;
CLOSE employees_cursor;
END ;
-----------------------------------------------------------------------------------
------------------
DECLARE
CURSOR employees_cursor IS
SELECT employee_id, last_name
FROM employees;
BEGIN
FOR employees_record IN employees_cursor LOOP
DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' ||
employees_record.last_name);
EXIT WHEN employees_cursor%ROWCOUNT > 10;
END LOOP;
END ;
-----------------------------------------------------------------------------------
--------
BEGIN
FOR employees_record IN
(SELECT employee_id, last_name
FROM employees)
LOOP
DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' ||
employees_record.last_name);
END LOOP;
END ;
-----------------------------------------------------------------------------------
-----------
DECLARE
CURSOR employees_cursor
(p_deptno NUMBER, p_job VARCHAR2)IS
SELECT employee_id, last_name
FROM employees
WHERE department_id = p_deptno
AND job_id = p_job;
employees_record employees_cursor%ROWTYPE;
BEGIN
OPEN employees_cursor(80,'SA_REP');
LOOP
FETCH employees_cursor
INTO employees_record;
DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' ||
employees_record.last_name);
EXIT WHEN employees_cursor%NOTFOUND;
END LOOP;
CLOSE employees_cursor;
OPEN employees_cursor(60, 'IT_PROG');
LOOP
FETCH employees_cursor
INTO employees_record;
DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' ||
employees_record.last_name);
EXIT WHEN employees_cursor%NOTFOUND ;
END LOOP;
CLOSE employees_cursor;
END ;
-----------------------------------------------------------------------------------
---
DECLARE
CURSOR employees_cursor IS
SELECT e.employee_id, e.last_name,e.salary, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND e.department_id = 60
FOR UPDATE OF salary NOWAIT;
BEGIN
FOR emp_record IN employees_cursor
LOOP
IF emp_record.salary < 5000 THEN
UPDATE employees
SET salary = emp_record.salary * 1.10
WHERE CURRENT OF employees_cursor;
END IF;
END LOOP;
END ;
/