您的位置:首页 > 数据库 > Oracle

Oracle中使用游标的两个例子

2012-02-21 09:16 597 查看
Example 6-41 Using CURRENT OF to Update the Latest Row Fetched From a Cursor

DECLARE

my_emp_id NUMBER(6);

my_job_id VARCHAR2(10);

my_sal NUMBER(8,2);

CURSOR c1 IS SELECT employee_id, job_id, salary FROM employees FOR UPDATE;

BEGIN

OPEN c1;

LOOP

FETCH c1 INTO my_emp_id, my_job_id, my_sal;

IF my_job_id = 'SA_REP' THEN

UPDATE employees SET salary = salary * 1.02 WHERE CURRENT OF c1;

END IF;

EXIT WHEN c1%NOTFOUND;

END LOOP;

END;

/

Example 6-42 Fetching Across COMMITs Using ROWID

DECLARE

CURSOR c1 IS SELECT last_name, job_id, rowid FROM employees;

my_lastname employees.last_name%TYPE;

my_jobid employees.job_id%TYPE;

my_rowid UROWID;

BEGIN

OPEN c1;

LOOP

FETCH c1 INTO my_lastname, my_jobid, my_rowid;

EXIT WHEN c1%NOTFOUND;

UPDATE employees SET salary = salary * 1.02 WHERE rowid = my_rowid;

-- this mimics WHERE CURRENT OF c1

COMMIT;

END LOOP;

CLOSE c1;

END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: