A complete example if uisng the cursor variable using a cursor FOR LOOP : For LOOP « PL SQL Statements « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> create table product(
  2     product_id number(4)     not null,
  3     product_description varchar2(20) not null
  4  );

Table created.

SQL>
SQL> insert into product values (1,'Java');

1 row created.

SQL> insert into product values (2,'Oracle');

1 row created.

SQL> insert into product values (3,'C#');

1 row created.

SQL> insert into product values (4,'Javascript');

1 row created.

SQL> insert into product values (5,'Python');

1 row created.

SQL>
SQL>
SQL> create table company(
  2     product_id        number(4)    not null,
  3     company_id          NUMBER(8)    not null,
  4     company_short_name  varchar2(30) not null,
  5     company_long_name   varchar2(60)
  6  );

Table created.

SQL> insert into company values(1,1001,'A Inc.','Long Name A Inc.');

1 row created.

SQL> insert into company values(1,1002,'B Inc.','Long Name B Inc.');

1 row created.

SQL> insert into company values(1,1003,'C Inc.','Long Name C Inc.');

1 row created.

SQL> insert into company values(2,1004,'D Inc.','Long Name D Inc.');

1 row created.

SQL> insert into company values(2,1005,'E Inc.','Long Name E Inc.');

1 row created.

SQL> insert into company values(2,1006,'F Inc.','Long Name F Inc.');

1 row created.

SQL>
SQL>
SQL>
SQL> DECLARE
  2    CURSOR cursorValue IS
  3      SELECT h.product_description,o.company_short_name
  4      FROM company o,product h
  5      WHERE o.product_id =h.product_id
  6      ORDER by 2;
  7  BEGIN
  8
  9    FOR idx IN cursorValue LOOP
 10      dbms_output.put_line(rpad(idx.product_description,20,' ')||' '||rpad(idx.company_short_name,30,' '));
 11    END LOOP;
 12  END;
 13  /
Java                 A Inc.
Java                 B Inc.
Java                 C Inc.
Oracle               D Inc.
Oracle               E Inc.
Oracle               F Inc.

PL/SQL procedure successfully completed.

SQL>
SQL> drop table product;

Table dropped.

SQL>
SQL> drop table company;

Table dropped.








22.4.For LOOP
22.4.1.FOR Loops
22.4.2.FOR LOOP with loop counter
22.4.3.Nested FOR LOOP with Labels
22.4.4.Nested FOR loop counter
22.4.5.Nested three level LOOP
22.4.6.Reversed FOR LOOP
22.4.7.The upper or lower bounds of the FOR loop can be defined as variables or functions.
22.4.8.Nested IF statement in For loop
22.4.9.Use FOR LOOP to loop through dates
22.4.10.EXIT a FOR LOOP with exit command
22.4.11.FOR Loop Scoping Rules
22.4.12.FOR Loop Ranges
22.4.13.LOOP with Labels
22.4.14.A complete example if uisng the cursor variable using a cursor FOR LOOP
22.4.15.FOR year_number IN 1800..1995: define variable for a range type
22.4.16.Drop any objects to make script re-runnable: for in
22.4.17.For loop variable in a range of numbers
22.4.18.Reversed loop
22.4.19.variable-delimitted loop
22.4.20.EXPLAIN PLAN FOR select statement