как передать имя таблицы в качестве параметра хранимой процедуре?
Можно ли создатьrowtype
для имени таблицы, которая передается в качестве параметраStored-Procedure
а также как я знаю столбцы для их решения вDBMS_OUUTPUT.PUT_LINE()
заявление.
Конечный пользователь может дать любое имя пользователя (схему) и имя таблицы
Я хочу сделать что-то, как показано ниже, но это не работает.
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;
Дайте мне знать, если это возможно.
Благодарю.