¿Cómo pasar un nombre de tabla como parámetro al procedimiento almacenado?

¿Es posible crear unrowtype para un nombre de tabla que se pasa como un parámetro a unaStored-Procedure y también cómo sé las columnas para abordarlas en elDBMS_OUUTPUT.PUT_LINE() declaración.

El usuario final puede dar cualquier nombre de usuario (esquema) y nombre de tabla

Quiero hacer algo como abajo pero no funciona.

 CREATE OR REPLACE PROCEDURE SP_PASS(USER_NAME VARCHAR2,TAB_NAME IN VARCHAR2)
 AS
    TYPE REF_CUR IS REF CURSOR;
    V_ARR REF_CUR;
    V_SQL VARCHAR(200);
    V_ROWTYPE USER_NAME.TAB_NAME%ROWTYPE;
 BEGIN
     V_SQL := 'SELECT * FROM '||USER_NAME||'.'||TAB_NAME;
     OPEN V_ARR FOR V_SQL;
     LOOP
     FETCH V_ARR INTO V_ROWTYPE;
     EXIT WHEN V_ARR%NOT FOUND;
     DBMS_OUTPUT.PUT_LINE(V_ROWTYPE.COL1||','||V_ROWTYPE.COL2||','||V_ROWTYPE.COL3);
     END LOOP;
     CLOSE V_ARR;
END;

Déjame saber si es posible.

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta