Wie übergebe ich einen Tabellennamen als Parameter an eine gespeicherte Prozedur?

Ist es möglich einerowtype für einen Tabellennamen, der als Parameter an a übergeben wirdStored-Procedure und auch wie kann ich die Spalten kennen, um sie im zu adressierenDBMS_OUUTPUT.PUT_LINE() Aussage.

Der Endbenutzer kann einen beliebigen Benutzernamen (Schema) und Tabellennamen angeben

Ich möchte etwas wie unten tun, aber es funktioniert nicht.

 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;

Lass es mich wissen, wenn es möglich ist.

Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage