본문 바로가기

컴퓨터공학/데이터베이스

PL/SQL 반복문을 이용한 데이터베이스 초기화

For문에서 select 사용 

declare 
    begin 
        for emp_list 
        in (select ename,hiredate from emp where hiredate> to_date('20/10/22') order by hiredate)
        loop 
            dbms_output.put_line('사원이름 : ' || emp_list.ename);
            dbms_output.put_line('입사일 : ' || emp_list.hiredate);
        end loop;
    end;

 

 

 

 

테이블 일괄 삭제

 

SELECT 'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;' FROM user_objects WHERE object_type = 'TABLE' ;

 

 

시퀀스 일괄 삭제

SELECT 'DROP SEQUENCE ' || object_name || ' ;' FROM user_objects WHERE object_type = 'SEQUENCE' ;

 

 

휴지통 비우기

purge recyclebin;

 

 

데이터베이스 초기화

BEGIN
   FOR c
      IN (  SELECT 'DROP ' || OBJECT_TYPE || ' ' || OBJECT_NAME || CASE WHEN OBJECT_TYPE IN ('TABLE', 'VIEW') THEN ' CASCADE CONSTRAINTS' ELSE '' END AS DROP_DDL
              FROM USER_OBJECTS
             WHERE OBJECT_TYPE IN ('TABLE',
                                   'VIEW',
                                   'PACKAGE',
                                   'FUNCTION',
                                   'SEQUENCE')
          ORDER BY OBJECT_TYPE, OBJECT_NAME)
   LOOP
      EXECUTE IMMEDIATE (c.DROP_DDL);
   END LOOP;
   EXECUTE IMMEDIATE ('PURGE RECYCLEBIN');
END;

for문에서 select 사용의 for문은 emp_list의 ename과 hiredate를 가져온다.

 

데이터베이스 초기화에서는 select문을 DROP_DDL 라고 별칭을 둔다.

for 문 c에는 select 문이 여러 개 있을 텐데 별칭을 사용하여 for문으로 사용한다는 뜻이다.

 

 

 

 

PL/SQL 반복문 Loop, While, For 참고 

[Oracle DB] PL/SQL LOOP,WHILE,FOR(반복문) : 네이버 블로그 (naver.com)

 

[Oracle DB] PL/SQL LOOP,WHILE,FOR(반복문)

이번 글에서는 PL에서 반복문을 활용하는 법에 대해 알아보자. 반복문에서는 LOOP,WHILE,FOR...

blog.naver.com