Create a cursor for update : Introduction « Cursor « Oracle PL/SQL 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>
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>
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>
SQL> drop table product;

Table dropped.

SQL>
SQL>








25.1.Introduction
25.1.1.Cursors
25.1.2.First Cursor Example
25.1.3.An example of opening the cursorValue cursor
25.1.4.OPEN Cursor for fetching
25.1.5.A Cursor for counting
25.1.6.To prepare the comma-separated list
25.1.7.Create a cursor for update
25.1.8.An example of cursor variable assignment
25.1.9.Assigning different queries to the same cursor variable
25.1.10.Cursor to reference whole table
25.1.11.select first row to a cursor
25.1.12.Nested cursor
25.1.13.Cursor performance