create table emp_test (
empid NUMBER PRIMARY KEY,
emp_name VARCHAR2(200),
salary NUMBER(6))
Table created.
create sequence emp_test_pk_sq
Sequence created.
insert into emp_test values (emp_test_pk_sq.NEXTVAL, 'Ammar', 7702)
1 row(s) inserted.
insert into emp_test values (emp_test_pk_sq.NEXTVAL, 'Ramya', 6600)
1 row(s) inserted.
insert into emp_test values (emp_test_pk_sq.NEXTVAL, 'Farhan', 6002)
1 row(s) inserted.
insert into emp_test values (emp_test_pk_sq.NEXTVAL, 'Jahan', 7000)
1 row(s) inserted.
CREATE OR REPLACE PROCEDURE proc_current_of_test
IS
CURSOR cur_emp_sal IS
SELECT salary
FROM emp_test
WHERE emp_name = 'Ammar'
FOR UPDATE;
v_sal1 emp_test.salary%TYPE;
v_sal2 emp_test.salary%TYPE;
begin
Open cur_emp_sal;
fetch cur_emp_sal INTO v_sal1;
update emp_test
set salary = 8000
where current of cur_emp_sal;
select salary into v_sal2 from emp_test where emp_name = 'Ammar';
close cur_emp_sal;
--clear screen;
dbms_output.put_line('Salary before ' || to_char(v_sal1));
dbms_output.put_line('Salary after ' || to_char(v_sal2));
end proc_current_of_test;
Salary before 7702
Salary after 8000
drop table emp_test
Table dropped.
drop sequence emp_test_pk_sq
Sequence dropped.