![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
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; OPEN v_my_cur; Isn't v_my_cur already open inside function get_data_fnc? |
#3
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |