5. Working with Embedded SQL : Data Manipulation with Cursors : Delete Data Using Cursors : Example: Updating and Deleting with Cursors
 
Share this page                  
Example: Updating and Deleting with Cursors
The following example illustrates updating and deleting with a cursor:
exec sql include sqlca;

exec sql begin declare section;
     name          character_string(15);
     salary        float;
exec sql end declare section;

exec sql whenever sqlerror stop;

exec sql connect personnel;

exec sql declare c1 cursor for
     select ename, sal
     from employee
     for update of sal;

exec sql open c1;

exec sql whenever not found goto closec1;

loop while more rows

exec sql fetch c1 into :name, :salary;
          print name, salary;

/* Increase salaries of all employees earning
          less than 60,000. */

if salary < 60,000 then

          print 'Updating ', name;
          exec sql update employee
               set sal = sal * 1.1
                    where current of c1;

/* Fire all employees earning more than
          300,000. */

else if salary > 300,000 then

          print 'Terminating ', name;
          exec sql delete from employee
               where current of c1;
end if;

end loop;

closec1:

     exec sql close c1;

     exec sql disconnect;