반응형
--[테이블 백업용 프로시저]
--[테이블 백업용 프로시저]
CREATE OR REPLACE PROCEDURE DEPT_INSERT_PROC(P_TNM VARCHAR2)
IS
    V_CNT NUMBER;
    V_SQL VARCHAR2(1000);
    V_TNM VARCHAR2(200) := p_tnm||'_'||TO_CHAR(SYSDATE, 'YYYYMMDD');
BEGIN
    DBMS_OUTPUT.PUT_LINE(p_tnm||'테이블 백업 시작');
    DBMS_OUTPUT.PUT_LINE('백업 테이블 명 : '||V_TNM);
    
    select count (*) INTO v_cnt from TAB WHERE TNAME= V_TNM;
    
    IF V_CNT <=0 THEN
        V_SQL := 'CREATE TABLE '||V_TNM||' AS SELECT * FROM ' ||p_tnm;
        EXECUTE IMMEDIATE V_SQL;
        DBMS_OUTPUT.PUT_LINE('테이블 생성 성공');
    ELSE
        V_SQL := 'DROP TABLE '||v_tnm;
        EXECUTE IMMEDIATE V_SQL;
        DBMS_OUTPUT.PUT_LINE ('기존 테이블 삭제 성공');
        
        V_SQL := 'CREATE TABLE '||v_tnm||' AS SELECT * FROM ' ||P_TNM;
        EXECUTE IMMEDIATE V_SQL;
        DBMS_OUTPUT.PUT_LINE ('테이블 생성 성공');
    END IF;
    DBMS_OUTPUT.PUT_LINE('백업 완료');
END;
/​
EXEC DEPT_INSERT_PROC('DEPT');
권한부여

GRANT CREATE ANY TABLE TO TEST;

 

반응형

'[ORACLE]' 카테고리의 다른 글

[ORACLE] PL/SQL - NDS  (1) 2024.01.25
[ORACLE] PL/SQL - LOOP, FOR LOOP, WHILE LOOP  (0) 2024.01.25
[ORACLE] PL/SQL - ANOYMOUS BLOCK,  (0) 2024.01.24
[ORACLE] 집합연산자 UNION, UNION ALL, INTERSECT, MINUS  (0) 2024.01.24
[ORACLE] MERGE  (0) 2024.01.23

+ Recent posts