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)
'컴퓨터공학 > 데이터베이스' 카테고리의 다른 글
오라클 디렉토리 개념 (0) | 2021.11.03 |
---|---|
SQL DECODE와 CASE WHEN의 차이점 (0) | 2021.10.28 |
SQL with 절, row number , lag/lead 함수 사용 (0) | 2021.10.28 |
SQL 기초와 예시 (0) | 2021.10.28 |
SQL 가로를 세로로 / 세로를 가로로 (with where 와 left join) (0) | 2021.10.27 |