728x90
반응형
--[테이블 백업용 프로시저]
--[테이블 백업용 프로시저]
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;

 

728x90
반응형

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

[ORACLE] TRIGGER  (0) 2024.01.29
[ORACLE] EXCETPTION  (0) 2024.01.29
[ORACLE] RETURN  (0) 2024.01.29
[ORACLE] PROCEDURE  (0) 2024.01.26
[ORACLE] OBJECT, TABLE  (0) 2024.01.26

+ Recent posts