Constrained and Unconstrained Cursor Variables:
The cursor variables in the previous section are constrained-they are defined for a specific return type only. When the variable is later opened that must be opened for a query whose select list matches the return type of the cursor. If not then the predefined exception ROWTYPE_MISMATCH is raised.
PL/SQL, though, permits the declaration of unconstrained cursor variables. The unconstrained cursor variable does not have a RETURN clause. When an unconstrained cursor variable is later opened, that can be opened for any query. The subsequent declarative section defines an unconstrained cursor variable.
DECLARE
--TYPE t_FlexibleRef IS REF CURSOR;
v_CursorVar t_FlexibleRef;