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;
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;
相关文章推荐
- oracle学习之路(六)两个实际使用的例子
- oracle 存储过程(其中使用了游标)例子
- ORACLE 游标使用的一个例子
- oracle 游标使用的一个例子
- oracle游标使用小例子
- Oracle游标、参数的使用例子
- 一个Excel导入SQL server的例子(分别使用游标、CTE、master..spt_values实现)
- ORACLE 通过游标使用来了解cursor 的好处!
- Oracle 游标使用全解
- oracle中游标及变量的使用
- Oracle 游标使用全解
- oracle中游标的使用
- Oracle 游标使用大全
- oracle游标的使用
- oracle游标使用
- ORACLE游标使用大全【转】
- oracle中游标的使用
- C#里使用Oracle提供的Oracle.DataAccess 返回包里的记录集游标,含Oralce里的分页包代码
- CreateRemoteThread 使用的两个例子
- PL/SQL ORACLE游标的使用方法