Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to fetch Oracle reference cursor into table variable?
    primarykey
    data
    text
    <p>I am trying to load data from reference cursor into a table variable (or array), the reference cursor works if the table variable is based on existingtable %Rowtype but my reference cursor gets loaded by joining multiple tables so let me try to demonstrate an example what i am trying to do and some one can help me</p> <pre><code>--created table create table SAM_TEMP( col1 number null, col2 varchar(100) null ); --created procedure which outputs results from that table CREATE OR REPLACE PROCEDURE SP_OUT_RefCur_PARAM( C_RESULT OUT SYS_REFCURSOR ) IS BEGIN OPEN C_RESULT FOR SELECT COL1,COL2 FROM SAM_TEMP; END SP_OUT_RefCur_PARAM; --seeing the output works like this DECLARE REFCUR SYS_REFCURSOR; outtable SAM_TEMP%rowtype ; BEGIN SP_OUT_RefCur_PARAM(REFCUR); LOOP FETCH REFCUR INTO outtable; EXIT WHEN REFCUR%NOTFOUND; dbms_output.put_line(outtable.col1); END LOOP; CLOSE REFCUR; END; --but when i try to run below script it is giving error,i think i am missing something DECLARE REFCUR SYS_REFCURSOR; TYPE REFTABLETYPE IS RECORD (COL1 NUMBER, COL2 VARCHAR(100)); TYPE TABLETYPE IS TABLE OF REFTABLETYPE; outtable TABLETYPE; BEGIN SP_OUT_RefCur_PARAM(REFCUR); LOOP FETCH REFCUR INTO outtable; EXIT WHEN REFCUR%NOTFOUND; dbms_output.put_line(outtable.col1); END LOOP; CLOSE REFCUR; END; </code></pre> <p>Error report:</p> <pre><code>ORA-06550 line 9, column 21: PLS-00597 expression 'OUTTABLE' in the INTO list is of wrong type ORA-06550 line 9, column 3: PL/SQL SQL Statement ignored ORA-06550 line 11, column 32: PLS-00302 component 'COL1' must be declared </code></pre> <p>Not sure what i am missing, Thanks in advance for your help</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload