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>