Populating a Record with FETCH INTO : Fetch « Cursor « 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    TYPE hrc_company_rec IS RECORD
  3      (hrc_company_id NUMBER,
  4       product_description VARCHAR2(20),
  5       company_short_name VARCHAR2(30));
  6    v_example_rec hrc_company_rec;
  7    CURSOR csr_hrc_org IS
  8      SELECT 1,h.product_description,o.company_short_name
  9      FROM company o,product h
 10      WHERE o.product_id =h.product_id
 11      AND h.product_id =1;
 12  BEGIN
 13    OPEN csr_hrc_org;
 14    LOOP
 15      FETCH csr_hrc_org INTO v_example_rec;
 16      EXIT WHEN csr_hrc_org%NOTFOUND;
 17      dbms_output.put_line(to_number(v_example_rec.hrc_company_id)||' '||
 18      v_example_rec.product_description||' '||
 19      v_example_rec.company_short_name);
 20    END LOOP;
 21    CLOSE csr_hrc_org;
 22  END;
 23  /
1 Java A Inc.
1 Java B Inc.
1 Java C Inc.

PL/SQL procedure successfully completed.

SQL>
SQL>
SQL>
SQL> drop table company;

Table dropped.

SQL>
SQL> drop table product;

Table dropped.








25.4.Fetch
25.4.1.Fetch data into PL/SQL table
25.4.2.Fetch cursor value into column type variable
25.4.3.Fetch cursor till cursorName%NOTFOUND
25.4.4.Using a simple UPDATE statement without locking for rows fetched from Cursors
25.4.5.To lock all the records while you're working on them. This is done using a SELECT FOR UPDATE command
25.4.6.Fetching Across Commits
25.4.7.Fetching Across Commits, Example 2
25.4.8.Populating a Record with FETCH INTO
25.4.9.cursor bulk
25.4.10.Compare the performance differences between row-at-a-time processing and bulk processing
25.4.11.Raise no data found exception if cursor is empty
25.4.12.Fetch cursor to three variables
25.4.13.Nested cursor open
25.4.14.Fetch cursor till notfound
25.4.15.Fetch cursor to table collection of row type
25.4.16.Fetch cursor value to three variables
25.4.17.Fetch row by row