-- 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;
'DBMS > ORACLE' 카테고리의 다른 글
Oracle 시퀀스 Value 설정하기.(프로시저로 관리) (0) | 2020.08.13 |
---|---|
MS-SQL 월별 주차 및 요일정보 구하기 (0) | 2017.06.23 |
오라클 날짜 , 요일 구하는 법 (0) | 2017.06.15 |
DISTINCT 와 GROUP BY의 차이 (0) | 2017.06.08 |