Cursor Oracle PLSQL Tutorial

SQL>
SQL> CREATE TABLE product (
  2       product_name     VARCHAR2(25) PRIMARY KEY,
  3       product_price    NUMBER(4,2),
  4       quantity_on_hand NUMBER(5,0),
  5       last_stock_date  DATE
  6       );
Table created.
SQL>
SQL> INSERT INTO product VALUES ('Product 1', 99,  1,    '15-JAN-03');
1 row created.
SQL> INSERT INTO product VALUES ('Product 2', 75,  1000, '15-JAN-02');
1 row created.
SQL> INSERT INTO product VALUES ('Product 3', 50,  100,  '15-JAN-03');
1 row created.
SQL> INSERT INTO product VALUES ('Product 4', 25,  10000, null);
1 row created.
SQL> INSERT INTO product VALUES ('Product 5', 9.95,1234, '15-JAN-04');
1 row created.
SQL> INSERT INTO product VALUES ('Product 6', 45,  1,    TO_DATE('December 31, 2008, 11:30 P.M.','Month dd, YYYY, HH:MI P.M.'));
1 row created.
SQL>
SQL> DECLARE
  2          CURSOR product_cur IS
  3          SELECT * FROM product
  4          FOR UPDATE OF product_price;
  5  BEGIN
  6          FOR product_rec IN product_cur
  7          LOOP
  8                  UPDATE product
  9                  SET product_price = (product_rec.product_price * 0.97)
 10                  WHERE CURRENT OF product_cur;
 11          END LOOP;
 12  END;
 13  /
PL/SQL procedure successfully completed.
SQL>
SQL> drop table product;
Table dropped.
SQL>