How to Use FOR UPDATE Clause
EMPNO |
ENAME |
JOB |
MGR |
HIREDATE |
SAL |
COMM |
DEPTNO |
7369 |
SMITH |
CLERK |
7902 |
17-Dec-80 |
800 |
|
20 |
7499 |
ALLEN |
SALESMAN |
7698 |
20-Feb-81 |
1600 |
300 |
30 |
7521 |
WARD |
SALESMAN |
7698 |
22-Feb-81 |
1250 |
500 |
30 |
7566 |
JONES |
MANAGER |
7839 |
02-Apr-81 |
2975 |
|
20 |
7654 |
MARTIN |
SALESMAN |
7698 |
28-Sep-81 |
1250 |
1400 |
30 |
7698 |
BLAKE |
MANAGER |
7839 |
01-May-81 |
2850 |
|
30 |
7788 |
SCOTT |
ANALYST |
7566 |
09-Dec-82 |
3000 |
|
20 |
7844 |
TURNER |
SALESMAN |
7698 |
08-Sep-81 |
1500 |
0 |
30 |
7876 |
ADAMS |
CLERK |
7788 |
12-Jan-83 |
1100 |
|
20 |
7900 |
JAMES |
CLERK |
7698 |
03-Dec-81 |
950 |
|
30 |
7902 |
FORD |
ANALYST |
7566 |
03-Dec-81 |
3000 |
|
20 |
7782 |
CLARK |
MANAGER |
7839 |
09-Jun-81 |
2450 |
|
10 |
7839 |
KING |
PRESIDENT |
|
17-Nov-81 |
5000 |
|
10 |
7934 |
MILLER |
CLERK |
7782 |
23-Jan-82 |
1300 |
|
10 |
9001 |
Manoj |
CLERK |
|
08-Nov-20 |
1000 |
450 |
40 |
--************************************ FOR UPDATE
***********************************-------
DECLARE
CURSOR C1 IS
select * from XX_EMP
WHERE
DEPTNO = 10
FOR UPDATE;
BEGIN
FOR I IN C1 LOOP
dbms_lock.sleep(10);
dbms_output.put_line ('Employee
: '||I.ENAME
||' :
Old Salary is : '||I.SAL);
UPDATE XX_EMP SET SAL = 15000
WHERE
EMPNO = I.EMPNO;
dbms_output.put_line ('---************************************* : '||I.ENAME
||' :
Salary Updated OR Not 0/1 : '||SQL%ROWCOUNT);
END LOOP;
END;
--=====================
DELETE from XX_EMP WHERE
DEPTNO = 10;
Comments
Post a Comment