Oracle Procedure 매개변수를 이용한 동적 테이블 사용.
-- STEP 1 테스트 테이블 생성
CREATE TABLE TEST_A (
TEST_CN VARCHAR2(100)
);
-- STEP 2 테스트 데이터 생성
INSERT INTO TEST_A ( TEST_CN ) VALUES ('AAA');
-- STEP 3 테이블 및 데이터 생성 확인
SELECT * FROM TEST_A;
-- STEP 4 프로시저 생성
CREATE OR REPLACE PROCEDURE TEST_AA (
IN_TABEL_NM IN VARCHAR2
)
IS
V_STR VARCHAR2(500);
V_RESULT VARCHAR2(500);
BEGIN
FOR REC IN (
SELECT OBJECT_NAME
FROM SYS.ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OBJECT_NAME = IN_TABEL_NM
)LOOP
V_STR := 'SELECT TEST_CN FROM '|| REC.OBJECT_NAME ;
EXECUTE IMMEDIATE V_STR INTO V_RESULT;
DBMS_OUTPUT.PUT_LINE('TABLE 명 : ' || REC.OBJECT_NAME || ', ' || V_RESULT );
V_STR := 'DELETE FROM ' || REC.OBJECT_NAME;
EXECUTE IMMEDIATE V_STR;
END LOOP;
END;
-- STEP 5 프로시저 실행.
EXEC TEST_AA('TEST_A');
-- STEP 6 테스트 데이터 삭제 확인.
SELECT * FROM TEST_A;
-- STEP 7 테스트 테이블 삭제
DROP TABLE TEST_A;