Hi
Cursor (explicit cursor) are static cursors which can be associated with onlyone SQl statement at the same timeand this statement is known when block is compiled. A Cursor Variable, on the other hand, can be associated with different queries at runtime.
Static Cursor are analogus to PL/SQL constants because they can only be associated with one runtime query, whereas reference cursor are analogus to PL/SQL variables, which can hold different values at runtime.
Reference Cursor can have return type.
Beacause of reference type, no storage is allocated for it when it is declared. Before it can be used, it needs to point to a valid area of memory, which can be created either by allocating it to the client-side program or on the server by PL/SQL engine.