fetch sys_refcursor type variable to table%rowtype variable : rowtype « PL SQL « Oracle PL / SQL






fetch sys_refcursor type variable to table%rowtype variable

 

SQL> CREATE TABLE EMP(
  2      EMPNO NUMBER(4) NOT NULL,
  3      ENAME VARCHAR2(10),
  4      JOB VARCHAR2(9),
  5      MGR NUMBER(4),
  6      HIREDATE DATE,
  7      SAL NUMBER(7, 2),
  8      COMM NUMBER(7, 2),
  9      DEPTNO NUMBER(2)
 10  );

Table created.

SQL> INSERT INTO EMP VALUES(2, 'Jack', 'Tester', 6,TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600, 300, 30);

1 row created.

SQL> INSERT INTO EMP VALUES(3, 'Wil', 'Tester', 6,TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30);

1 row created.

SQL> INSERT INTO EMP VALUES(4, 'Jane', 'Designer', 9,TO_DATE('2-APR-1981', 'DD-MON-YYYY'), 2975, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES(5, 'Mary', 'Tester', 6,TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30);

1 row created.

SQL> INSERT INTO EMP VALUES(7, 'Chris', 'Designer', 9,TO_DATE('9-JUN-1981', 'DD-MON-YYYY'), 2450, NULL, 10);

1 row created.

SQL> INSERT INTO EMP VALUES(8, 'Smart', 'Helper', 4,TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES(9, 'Peter', 'Manager', NULL,TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10);

1 row created.

SQL> INSERT INTO EMP VALUES(10, 'Take', 'Tester', 6,TO_DATE('8-SEP-1981', 'DD-MON-YYYY'), 1500, 0, 30);

1 row created.

SQL> INSERT INTO EMP VALUES(13, 'Fake', 'Helper', 4,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 3000, NULL, 20);

1 row created.

SQL>
SQL> create or replace function emp_list return sys_refcursor is
  2   rc sys_refcursor;
  3   begin
  4   open rc for select * from emp;
  5   return rc;
  6   end;
  7  /

Function created.

SQL>
SQL> create or replace procedure list_emps is
  2   e sys_refcursor;
  3   r emp%rowtype;
  4  begin
  5   e := emp_list;
  6   loop
  7       fetch e into r;
  8       exit when e%notfound;
  9       dbms_output.put_line(r.empno||','||r.hiredate);
 10   end loop;
 11   close e;
 12   end;
 13  /

Procedure created.

SQL>
SQL> drop table emp;

Table dropped.

   
  








Related examples in the same category

1.Use select command to fill value to rowtype variable
2.Define row type variable
3.Define rowtype and reference its column value
4.rowtype index by binary_integer
5.Use rowtype type value to query a table
6.Cursor and rowtype
7.For each row in the cursor
8.From Fields to Rows-Using %ROWTYPE
9.Insert table%rowtype to table
10.Rowtype variable
11.Select * into table%rowtype
12.Select data into rowtype variable