Cursor Ref Issue: What am I missing?

From: KevinS <searlek_at_googlemail.com>
Date: Thu, 30 Sep 2010 06:56:08 -0700 (PDT)
Message-ID: <6b2d672c-ab58-4dcc-9c89-94da8c638619_at_a15g2000yqm.googlegroups.com>



Hi all,

The coded below sets up and hopefully demonstrates an issue I am having.

The line 'OPEN v_my_cur;' in tha package body produces the error 'Expresssion is of wrong type.

The database is Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit.

Any ideas what's I've missed?

thanks

CREATE TABLE my_table(a VARCHAR2(1),b VARCHAR2(1));

INSERT INTO my_table(a,b) VALUES('a','b');

CREATE OR REPLACE PACKAGE MY_REF_CURSOR_PKG AS   PROCEDURE MY_prc;

END MY_REF_CURSOR_PKG; CREATE OR REPLACE PACKAGE BODY MY_REF_CURSOR_PKG AS

  TYPE my_rec IS RECORD(

       a         my_table.b%TYPE,
       b         my_table.b%TYPE);

  TYPE my_cur IS REF CURSOR RETURN my_rec;

  Function get_data_fnc
  RETURN my_cur
  IS
    my_rc my_cur;
  BEGIN     OPEN my_rc
    FOR
    SELECT t.a, t.b
    FROM my_table t;

    RETURN my_rc;

  END get_data_fnc;

  PROCEDURE my_fnc
  IS

    v_my_cur my_cur;

  BEGIN     v_my_cur := get_data_fnc;

    OPEN v_my_cur;

    LOOP
    FETCH v_my_cur INTO r_failed_wo;
    EXIT WHEN v_my_cur%NOTFOUND;
    END LOOP;   END my_fnc;

END MY_REF_CURSOR_PKG; Received on Thu Sep 30 2010 - 08:56:08 CDT

Original text of this message