Which two statements are true about REF CURSOR types? (Choose two.)
A.
REF CURSOR types cannot be defined inside a package.
B.
SYS_REFCURSOR can be used to declare cursor variables in stored procedures and
functions.
C.
A REF CURSOR return type can be declared using %TYPE, or %ROWTYPE, or a userdefined
record.
D.
Only a weak REF CURSOR type can be used as a formal parameter of a stored procedure or
function.
B,C.
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/cursor_variables.htm
C, because question not specifies if cursor is weak or strong.
B,C
B,C
B.
SYS_REFCURSOR is merely a pre-declared weak ref cursor. In other words these two variables are equivalent.
REF CURSOR types can be strong (with a return type) or weak (with no return type).
DECLARE
ref1 SYS_REFCURSOR;
TYPE rc IS REF CURSOR;
ref2 rc;
BEGIN
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/sqloperations.htm#i7106
C.
Cursor Variables
RETURN. Specifies the datatype of a cursor variable return value.
– You can use the %ROWTYPE attribute in the RETURN clause to provide a record type that
represents a row in a database table, or a row from a cursor or strongly typed cursor variable.
– You can use the %TYPE attribute to provide the datatype of a previously declared record.
docs.oracle.com/cd/B19306_01/appdev.102/b14261/cursor_variables.htm