<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>You&#039;ve got to find what you love.</title>
		<link>http://develop.sunshiny.co.kr/</link>
		<description>Stay Hungry. Stay Foolish.</description>
		<language>ko</language>
		<pubDate>Thu, 02 Sep 2010 10:49:13 +0900</pubDate>
		<generator>Textcube 1.7.6 : Staccato</generator>
		<item>
			<title>Oracle - CURSOR (커서)</title>
			<link>http://develop.sunshiny.co.kr/535</link>
			<description>- 커서란 SQL*Plus에서 사용자가 실행한 SQL문의 단위를 의미합니다. 오라클에서 수행한 모든 쿼리문은 커서 단위로 처리합니다. 커서는 암시적 커서와 명시적 커서로 나뉩니다. PL/SQL의 SQL문처럼 하나의 결과를 리턴하는 경우 커서 없이도 SQL문의 실행된 결과가 암시적으로 커서에 저장되므로 이를 암시적 커서라고 합니다.&lt;BR&gt;&lt;BR&gt;- SQL문을 수행한 후에 결과로 얻어지는 행이 여러 개일 경우에는 암시적인 커서에 정보를 저장할 수 없기에 에러가 발생합니다. 이런 경우에 반드시 명시적인 커서를 사용해야 합니다.&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# 커서의 상태&lt;/SPAN&gt;&lt;BR&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://develop.sunshiny.co.kr/attach/1/1385974918.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;119&quot; width=&quot;483&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;- 명시적인 커서는 PL/SQL의 레코드(RECORD)와 PL/SQL 의 테이블(TABLE)을 결합한 것으로서 프로그램 언어의 구조체 배열과 유사합니다. 커서를 사용하기 위해서는 다음과 같은 &lt;STRONG&gt;4가지 단계&lt;/STRONG&gt;를 거쳐야 합니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;1. 커서를 선언한다. (CURSOR cur_name)&lt;/SPAN&gt;&lt;BR style=&quot;FONT-WEIGHT: bold&quot;&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;2. 커서를 오픈한다. (OPEN cur_name)&lt;/SPAN&gt;&lt;BR style=&quot;FONT-WEIGHT: bold&quot;&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;3. 커서의 조회한 결과를 인출해 저장한다. (FETCH cur_name)&lt;/SPAN&gt;&lt;BR style=&quot;FONT-WEIGHT: bold&quot;&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;4. 커서를 닫는다. (CLOSE cur_name)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;1. 커서를 선언한다.&lt;/SPAN&gt; 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;CURSOR cursor_name&lt;BR&gt;IS statement;&lt;/DIV&gt;&lt;BR&gt;- 커서를 선언할 때에는 실행할 SELECT 문을 IS 다음에 서브쿼리 형태로 기술합니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;CURSOR C1 IS&lt;BR&gt;SELECT EMPNO, ENAME, SAL&lt;BR&gt;FROM EMP&lt;BR&gt;WHERE DEPTNO = 20;&lt;/DIV&gt;- C1은 커서의 이름이고 이 커서는 사원 테이블에서 부서번호가 20인 행을 조회합니다.&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;2. 커서를 오픈한다.&lt;/SPAN&gt;&lt;BR&gt;- 커서를 오픈 하게 되면 커서를 선언할 때 작성한 SELECT 문을 실행하게 됩니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;OPEN C1;&lt;/DIV&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;3. 커서에 조회한 결과를 인출해 저장한다.&lt;/SPAN&gt;&lt;BR&gt;- FETCH 명령어를 수행하면 오픈한 SELECT문에 의해 검색된 한 개의 정보를 읽어오게 됩니다.&lt;BR&gt;읽어온 정보는 변수에 저장합니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;FETCH C1 INTO VEMPNO, VENAME, VSAL;&lt;/DIV&gt;&lt;BR&gt;- SELECT 문의 결과로 얻어지는 행이 여러개일 경우에는&amp;nbsp; LOOP-END LOOP와 같은 반복문을 이용해서 마지막 행을 읽을 때가지 반복해서 수행해야 합니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;LOOP&lt;BR&gt;&amp;nbsp; &amp;nbsp; FETCH C1 INTO VEMPNO, VENAME, VSAL;&lt;BR&gt;&amp;nbsp; &amp;nbsp; EXIT WHEN C1%NOTFOUND;&lt;BR&gt;&amp;nbsp; &amp;nbsp; DBMS_OUTPUT.PUT_LINE(TO_CHAR(VEMPNO) || VNAME || TO_CHAR(VSAL));&lt;BR&gt;END LOOP;&lt;/DIV&gt;&lt;BR&gt;- 만족하는 행을 발견하지 못할 때 즉, 마지막 행을 읽었을 때 반복문을 벗어나도록 하기 위해서는 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;&#039;EXIT WHEN C1%NOTFOUND&#039;&lt;/SPAN&gt;와 같이 기술 합니다.&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;4. 커서를 닫는다.&lt;/SPAN&gt;&lt;BR&gt;- CLOSE 명령문으로 더 이상 사용되지 않을 커서를 닫습니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;CLOSE C1;&lt;/DIV&gt;- 커서를 닫으면 (CLOSE) 커서에 선언되 SELECT문의 선언이 해제됩니다.&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;- 20번 부서에 근무하는 사원의 정보를 출력해 봅니다.&lt;/SPAN&gt; 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; SET SERVEROUTPUT ON &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- DBMS_OUTPUT 출력 가능하도록 설정.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; DECLARE&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 커서를 실행한 결과를 저장할 지역 변수 선언 &lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; 2 &amp;nbsp; &amp;nbsp; vempno &amp;nbsp; NUMBER(4);&lt;BR&gt;&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; vename &amp;nbsp; VARCHAR2(20);&lt;BR&gt;&amp;nbsp; 4 &amp;nbsp; &amp;nbsp; vsal &amp;nbsp;&amp;nbsp; NUMBER(7, 2);&lt;BR&gt;&amp;nbsp; 5&amp;nbsp; &lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 번호가 20인 사원의 정보를 조회하는 SELECT문을 커서로 선언.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; 6 &amp;nbsp; &amp;nbsp; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;CURSOR &lt;/SPAN&gt;C1&lt;BR&gt;&amp;nbsp; 7 &amp;nbsp; &amp;nbsp; IS&lt;BR&gt;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; SELECT EMPNO, ENAME, SAL&lt;BR&gt;&amp;nbsp; 9 &amp;nbsp; &amp;nbsp; FROM EM01&lt;BR&gt;&amp;nbsp;10 &amp;nbsp; &amp;nbsp; WHERE DEPTNO = 20;&lt;BR&gt;&amp;nbsp;11&amp;nbsp; &lt;BR&gt;&amp;nbsp;12&amp;nbsp; BEGIN&lt;BR&gt;&amp;nbsp;13 &amp;nbsp; &amp;nbsp; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;OPEN &lt;/SPAN&gt;C1; &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 커서를 오픈하면 커서를 선언할 때 작성한 SELECT 문이 실행됩.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;14 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;번호 &amp;nbsp; 이름 &amp;nbsp; 급여&#039;);&lt;BR&gt;&amp;nbsp;15&amp;nbsp; &lt;BR&gt;&amp;nbsp;16 &amp;nbsp; &amp;nbsp; LOOP&lt;BR&gt;&amp;nbsp;17 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;FETCH &lt;/SPAN&gt;C1 INTO VEMPNO, VENAME, VSAL; &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- SELECT 문을 실행한 결과를 한행씩 가져와서 변수에 저장&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;18 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EXIT WHEN C1%NOTFOUND; &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 마지막 행까지 읽어서 행이 발견되지 않으면 반복문을 벗어남.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;19 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DBMS_OUTPUT.PUT_LINE(TO_CHAR(VEMPNO) || &#039; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039; || VENAME || &#039; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039; || TO_CHAR(VSAL));&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt; -- 검색된 결과를 사용자 화면에 출력.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END LOOP ;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- LOOP 구문 : 커서 실행 결과 구해진 행이 여러 개이면 반복문을 사용하여 처리.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;20 &amp;nbsp; 21 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;CLOSE &lt;/SPAN&gt;C1;&lt;BR&gt;&amp;nbsp;22&amp;nbsp; END ;&lt;BR&gt;&amp;nbsp;23&amp;nbsp; /&lt;BR&gt;번호 &amp;nbsp; 이름 &amp;nbsp; 급여&lt;BR&gt;7566 &amp;nbsp;&amp;nbsp; JONES &amp;nbsp;&amp;nbsp; 2975&lt;BR&gt;7902 &amp;nbsp;&amp;nbsp; FORD &amp;nbsp; &amp;nbsp; 3000&lt;BR&gt;7368 &amp;nbsp;&amp;nbsp; SMITH &amp;nbsp;&amp;nbsp; 800&lt;BR&gt;7788 &amp;nbsp;&amp;nbsp; SCOTT &amp;nbsp;&amp;nbsp; 3000&lt;BR&gt;7876 &amp;nbsp;&amp;nbsp; TEST3 &amp;nbsp;&amp;nbsp; 1100&lt;BR&gt;&lt;BR&gt;PL/SQL procedure successfully completed.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;/DIV&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# OPEN-FETCH-CLOSE가 없이 커서 처리&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; SET SERVEROUTPUT ON&lt;BR&gt;SQL&amp;gt; DECLARE&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 커서를 수행한 결과 값을 저장할 레코드 형태의 변수.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; vemp &amp;nbsp; &amp;nbsp; emp%ROWTYPE;&lt;BR&gt;&amp;nbsp; 4&amp;nbsp; &lt;BR&gt;&amp;nbsp; 5&amp;nbsp; &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 커서 선언&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; 6 &amp;nbsp; &amp;nbsp; CURSOR C1&lt;BR&gt;&amp;nbsp; 7 &amp;nbsp; &amp;nbsp; IS&lt;BR&gt;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; SELECT EMPNO, ENAME, SAL&lt;BR&gt;&amp;nbsp; 9 &amp;nbsp; &amp;nbsp; FROM EM01&lt;BR&gt;&amp;nbsp;10 &amp;nbsp; &amp;nbsp; WHERE DEPTNO = 20;&lt;BR&gt;&amp;nbsp;11&amp;nbsp; &lt;BR&gt;&amp;nbsp;12&amp;nbsp; BEGIN&lt;BR&gt;&amp;nbsp;13 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;번호 &amp;nbsp; 이름 &amp;nbsp; 급여&#039;);&lt;BR&gt;&amp;nbsp;14&amp;nbsp; &lt;BR&gt;&amp;nbsp;15&amp;nbsp; /* FOR 레코드명 IN 커서명 LOOP */&lt;BR&gt;&amp;nbsp;16&amp;nbsp; &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- OPEN-FETCH-CLOSE문을 하나의 FOR문으로 대체할 수 있음.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;17&amp;nbsp; &lt;BR&gt;&amp;nbsp;18 &amp;nbsp; &amp;nbsp; FOR vemp IN C1 LOOP&lt;BR&gt;&amp;nbsp;19 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EXIT WHEN C1%NOTFOUND;&lt;BR&gt;&amp;nbsp;20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DBMS_OUTPUT.PUT_LINE(TO_CHAR(vemp.empno) || &#039; &amp;nbsp; &#039; || vemp.ename || &#039; &amp;nbsp;&amp;nbsp; &#039; || TO_CHAR(vemp.sal) || &#039;-------------&amp;gt;&#039;||C1%ROWCOUNT);&lt;BR&gt;&amp;nbsp;21 &amp;nbsp; &amp;nbsp; END LOOP;&lt;BR&gt;&amp;nbsp;22&amp;nbsp; END ;&lt;BR&gt;&amp;nbsp;23&amp;nbsp; /&lt;BR&gt;번호 &amp;nbsp; 이름 &amp;nbsp; 급여&lt;BR&gt;7566 &amp;nbsp;&amp;nbsp; JONES &amp;nbsp; 2975-------------&amp;gt;1&lt;BR&gt;7902 &amp;nbsp;&amp;nbsp; FORD &amp;nbsp;&amp;nbsp; 3000-------------&amp;gt;2&lt;BR&gt;7368 &amp;nbsp;&amp;nbsp; SMITH &amp;nbsp; 800-------------&amp;gt;3&lt;BR&gt;7788 &amp;nbsp;&amp;nbsp; SCOTT &amp;nbsp; 3000-------------&amp;gt;4&lt;BR&gt;7876 &amp;nbsp;&amp;nbsp; TEST3 &amp;nbsp; 1100-------------&amp;gt;5&lt;BR&gt;&lt;BR&gt;PL/SQL procedure successfully completed.&lt;/DIV&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# 커서를 활용한 실용 예제&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; DECLARE&lt;BR&gt;&amp;nbsp; 2 &amp;nbsp; &amp;nbsp; tot &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER := 0;&lt;BR&gt;&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; CURSOR emp_cursor&lt;BR&gt;&amp;nbsp; 4 &amp;nbsp; &amp;nbsp; IS&lt;BR&gt;&amp;nbsp; 5 &amp;nbsp; &amp;nbsp; SELECT ENAME, SAL&lt;BR&gt;&amp;nbsp; 6 &amp;nbsp; &amp;nbsp; FROM EM01;&lt;BR&gt;&amp;nbsp; 7&amp;nbsp; BEGIN&lt;BR&gt;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;이름 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 급여&#039;);&lt;BR&gt;&amp;nbsp; 9 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;-------------------------&#039;);&lt;BR&gt;&amp;nbsp;10&amp;nbsp; &lt;BR&gt;&amp;nbsp;11 &amp;nbsp; &amp;nbsp; FOR cur_var IN emp_cursor LOOP&lt;BR&gt;&amp;nbsp;12 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tot := tot + cur_var.sal;&lt;BR&gt;&amp;nbsp;13 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbms_output.put_line(cur_var.ename);&lt;BR&gt;&amp;nbsp;14 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &#039; || cur_var.sal);&lt;BR&gt;&amp;nbsp;15 &amp;nbsp; &amp;nbsp; END LOOP;&lt;BR&gt;&amp;nbsp;16 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;-------------------------&#039;);&lt;BR&gt;&amp;nbsp;17 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &#039; || tot);&lt;BR&gt;&amp;nbsp;18&amp;nbsp; END;&lt;BR&gt;&amp;nbsp;19&amp;nbsp; /&lt;BR&gt;이름 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 급여&lt;BR&gt;-------------------------&lt;BR&gt;MARTIN&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250&lt;BR&gt;JONES&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975&lt;BR&gt;TURNER&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500&lt;BR&gt;FORD&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000&lt;BR&gt;SMITH&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 800&lt;BR&gt;KING&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 5000&lt;BR&gt;WARD&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250&lt;BR&gt;BLAKE&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2850&lt;BR&gt;CLARK&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2450&lt;BR&gt;MILLER&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1300&lt;BR&gt;ALLEN&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1600&lt;BR&gt;SCOTT&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000&lt;BR&gt;JAMES&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1957&lt;BR&gt;TEST&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 800&lt;BR&gt;TEST3&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100&lt;BR&gt;-------------------------&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30832&lt;BR&gt;&lt;BR&gt;PL/SQL procedure successfully completed.&lt;/DIV&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;- 사원별 급여 현황을 그래프로 표현&lt;/SPAN&gt; 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; DECLARE&lt;BR&gt;&amp;nbsp; 2 &amp;nbsp; &amp;nbsp; CURSOR emp_cursor&lt;BR&gt;&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; IS&lt;BR&gt;&amp;nbsp; 4 &amp;nbsp; &amp;nbsp; SELECT ENAME, SAL&lt;BR&gt;&amp;nbsp; 5 &amp;nbsp; &amp;nbsp; FROM EMP&lt;BR&gt;&amp;nbsp; 6 &amp;nbsp; &amp;nbsp; ORDER BY SAL DESC;&lt;BR&gt;&amp;nbsp; 7&amp;nbsp; &lt;BR&gt;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; star &amp;nbsp;&amp;nbsp; VARCHAR2(100);&lt;BR&gt;&amp;nbsp; 9 &amp;nbsp; &amp;nbsp; cnt &amp;nbsp; &amp;nbsp; NUMBER := 0;&lt;BR&gt;&amp;nbsp;10&amp;nbsp; BEGIN&lt;BR&gt;&amp;nbsp;11 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 사원별 급여 현황&#039;);&lt;BR&gt;&amp;nbsp;12 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;----------------------------------------&#039;);&lt;BR&gt;&amp;nbsp;13&amp;nbsp; &lt;BR&gt;&amp;nbsp;14 &amp;nbsp; &amp;nbsp; FOR cur_var IN emp_cursor LOOP&lt;BR&gt;&amp;nbsp;15 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; star := NULL;&lt;BR&gt;&amp;nbsp;16 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cnt := round(cur_var.sal/100, 0);&lt;BR&gt;&amp;nbsp;17&amp;nbsp; &lt;BR&gt;&amp;nbsp;18 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR i IN 1.. cnt LOOP&lt;BR&gt;&amp;nbsp;19 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; star := star || &#039;*&#039;;&lt;BR&gt;&amp;nbsp;20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END LOOP;&lt;BR&gt;&amp;nbsp;21&amp;nbsp; &lt;BR&gt;&amp;nbsp;22 &amp;nbsp; &amp;nbsp; dbms_output.put_line(cur_var.ename);&lt;BR&gt;&amp;nbsp;23 &amp;nbsp; &amp;nbsp; dbms_output.put_line(&#039;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039; || star || &#039; &amp;nbsp;&amp;nbsp; &#039; || &#039; (&#039; || cur_var.sal || &#039;)&#039;);&lt;BR&gt;&amp;nbsp;24 &amp;nbsp; &amp;nbsp; END LOOP;&lt;BR&gt;&amp;nbsp;25&amp;nbsp; END;&lt;BR&gt;&amp;nbsp;26&amp;nbsp; /&lt;BR&gt;사원별 급여 현황&lt;BR&gt;----------------------------------------&lt;BR&gt;KING&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ************************************************** &amp;nbsp; &amp;nbsp; &amp;nbsp; (5000)&lt;BR&gt;FORD&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ****************************** &amp;nbsp; (3000)&lt;BR&gt;SCOTT&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ****************************** &amp;nbsp; (3000)&lt;BR&gt;JONES&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ****************************** &amp;nbsp; (2975)&lt;BR&gt;BLAKE&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ***************************** &amp;nbsp;&amp;nbsp; (2850)&lt;BR&gt;CLARK&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ************************* &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; (2450)&lt;BR&gt;JAMES&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ******************** &amp;nbsp; &amp;nbsp; (1957)&lt;BR&gt;ALLEN&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; **************** &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (1600)&lt;BR&gt;TURNER&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ***************&amp;nbsp; (1500)&lt;BR&gt;MILLER&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ************* &amp;nbsp;&amp;nbsp; (1300)&lt;BR&gt;MARTIN&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ************* &amp;nbsp;&amp;nbsp; (1250)&lt;BR&gt;WARD&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ************* &amp;nbsp;&amp;nbsp; (1250)&lt;BR&gt;ADAMS&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *********** &amp;nbsp; &amp;nbsp;&amp;nbsp; (1100)&lt;BR&gt;SMITH&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ******** &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (800)&lt;BR&gt;SMITH&lt;BR&gt;_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ******** &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (800)&lt;BR&gt;&lt;BR&gt;PL/SQL procedure successfully completed.&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;참고 자료 : 클릭하세요. 오라클 10g + PL/SQL 입문&lt;BR&gt;</description>
			<category>Oracle</category>
			<category>cursor</category>
			<category>dbms_output</category>
			<category>fetch</category>
			<category>for</category>
			<category>loop</category>
			<category>open cursor</category>
			<category>pl/sql</category>
			<category>set serveroutput on</category>
			<category>커서</category>
			<author>(sunshiny)</author>
			<guid>http://develop.sunshiny.co.kr/535</guid>
			<comments>http://develop.sunshiny.co.kr/535#entry535comment</comments>
			<pubDate>Sun, 01 Aug 2010 15:32:48 +0900</pubDate>
		</item>
		<item>
			<title>Oracle - VIEW 생성시 WITH CHECK OPTION, WITH READ ONLY</title>
			<link>http://develop.sunshiny.co.kr/534</link>
			<description>&lt;FONT size=3&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# 일반 VIEW &lt;/SPAN&gt;&lt;/FONT&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; CREATE OR REPLACE NOFORCE VIEW EMP_VIEW20&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS &lt;BR&gt;&amp;nbsp; 3&amp;nbsp; SELECT EMPNO, ENAME, DEPTNO&lt;BR&gt;&amp;nbsp; 4&amp;nbsp; FROM EM01&lt;BR&gt;&amp;nbsp; 5&amp;nbsp; WHERE DEPTNO = 20;&lt;BR&gt;&lt;BR&gt;View created.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_VIEW20; &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO ENAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 JONES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 FORD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 SMITH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 SCOTT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7369 SMITH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 ADAMS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;6 rows selected.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; UPDATE EMP_VIEW20 SET ENAME = &#039;TEST&#039; WHERE EMPNO = 7369;&lt;BR&gt;&lt;BR&gt;1 row updated.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_VIEW20;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO ENAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 JONES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 FORD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 SMITH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 SCOTT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; 7369 TEST &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 ADAMS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;6 rows selected.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; UPDATE EMP_VIEW20 SET DEPTNO = 40 WHERE EMPNO = 7369;&lt;BR&gt;&lt;BR&gt;1 row updated.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_VIEW20;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO ENAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 JONES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 FORD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 SMITH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 SCOTT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 ADAMS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EM01;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO ENAME &amp;nbsp; &amp;nbsp;&amp;nbsp; JOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- --------- ---------- ------------ ---------- ---------- &amp;nbsp; ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7654 MARTIN &amp;nbsp; &amp;nbsp; SALESMAN &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 7698 28-SEP-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1400 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 JONES &amp;nbsp; &amp;nbsp;&amp;nbsp; MANAGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 02-APR-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7844 TURNER &amp;nbsp; &amp;nbsp; SALESMAN &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 7698 08-SEP-98 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7900 JAMES &amp;nbsp; &amp;nbsp;&amp;nbsp; CLERK &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1957 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 7369 TEST &amp;nbsp; &amp;nbsp; &amp;nbsp; CLERK &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 40&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 ADAMS &amp;nbsp; &amp;nbsp;&amp;nbsp; CLERK &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 12-JAN-83 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;/DIV&gt;- 뷰는 쿼리문이므로 기본 테이블의 정보를 기본으로 조회 합니다. 뷰로 UPDATE문을 수행하면 뷰를 생성할 때 사용되었던 기본 테이블의 내용이 변경되는 것이고, 뷰를 조회하면 변경된 결과를 저장한 기본 테이블에서 뷰를 정의할 때 기술한 쿼리문을 수행해서 출력합니다. 뷰를 통해서 보여지는 정보는 기본 테이블에서 얻어지는 것입니다.&lt;BR&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;# WITH CHECK OPTION&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;- 부를 생성할 때 &lt;STRONG&gt;WHERE &lt;/STRONG&gt;다음에 &lt;STRONG&gt;WITH CHECK OPTION&lt;/STRONG&gt; 을 기술하면 그 조건에 의해서 기본 테이블에서 정보가 추출되는 것이므로 조건에 사용되어진 컬럼 값을 뷰를 통해서 변경 불가능하게 됩니다. 즉 위 예제에서는 뷰를 생성할 때 부서번호가 20인 사원 정보만 추출했지만 해당 뷰로 부서 번호를 40번으로 변경할 수있었습니다.&lt;BR&gt;그래서 뷰에서 보여지는 사원이 하나 감소하게 되었습니다. 하지만&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1); FONT-WEIGHT: bold&quot;&gt;WITH CHECK OPTION &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;을 지정하면 부서 번호가 뷰를 생성할 때 조건으로 사용되었으므로 절대 부서번호 값은 &lt;STRONG&gt;뷰를 통해서 변경 불가능&lt;/STRONG&gt; 하게 됩니다.&lt;/SPAN&gt; 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; CREATE OR REPLACE NOFORCE VIEW EMP_VIEW20&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS &lt;BR&gt;&amp;nbsp; 3&amp;nbsp; SELECT EMPNO, ENAME, DEPTNO&lt;BR&gt;&amp;nbsp; 4&amp;nbsp; FROM EM01&lt;BR&gt;&amp;nbsp; 5&amp;nbsp; WHERE DEPTNO = 20 &lt;STRONG&gt;WITH CHECK OPTION&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp; 6 ;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;View created.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT VIEW_NAME, TEXT FROM USER_VIEWS;&lt;BR&gt;&lt;BR&gt;VIEW_NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; TEXT&lt;BR&gt;------------------------------&amp;nbsp; ------------------------------------------&lt;BR&gt;VIEW_EMPLOYEES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT *&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; FROM EMPLOYEES&lt;BR&gt;-------------------------------------------------------------------------&lt;BR&gt;EMP_VIEW20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SELECT EMPNO, ENAME, DEPTNO&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM EM01&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE DEPTNO = 20 WITH CHECK OPTION&lt;BR&gt;-------------------------------------------------------------------------&lt;BR&gt;CHECK_OPTION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT empno, ename, deptno, job&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM&amp;nbsp; emp_test3&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE deptno = 10&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 사원의 이름을 변경하는것은 가능함.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; UPDATE EMP_VIEW20&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; SET ENAME = &#039;TEST3&#039;&lt;BR&gt;&amp;nbsp; 3&amp;nbsp; WHERE EMPNO = 7876;&lt;BR&gt;&lt;BR&gt;1 row updated.&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 부서 번호가 뷰를 생성할때 WHERE 절에 사용된 컬럼이므로 다음과 같이 WITH CHECK OPTION 이 지정된 뷰에 대해서 부서번호 값을 변경하려고 접근하면 에러가 발생함.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; UPDATE EMP_VIEW20&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; SET DEPTNO = 40&lt;BR&gt;&amp;nbsp; 3&amp;nbsp; WHERE EMPNO = 7876;&lt;BR&gt;UPDATE EMP_VIEW20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; *&lt;BR&gt;ERROR at line 1:&lt;BR&gt;&lt;STRONG&gt;ORA-01402: view WITH CHECK OPTION where-clause violation&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_VIEW20;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO ENAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 JONES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 FORD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 SMITH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 SCOTT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 TEST3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;/DIV&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# WITH READ ONLY&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR&gt;- 뷰의 WITH READ ONLY 옵션은 뷰를 생성한 후 어떠한 DML문도 수행할 수 없도록 하는 기능을 합니다. 
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; CREATE OR REPLACE NOFORCE VIEW EMP_VIEW20&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS &lt;BR&gt;&amp;nbsp; 3&amp;nbsp; SELECT EMPNO, ENAME, DEPTNO&lt;BR&gt;&amp;nbsp; 4&amp;nbsp; FROM EM01&lt;BR&gt;&amp;nbsp; 5&amp;nbsp; WHERE DEPTNO = 20 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;WITH READ ONLY&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; 6&amp;nbsp; ;&lt;BR&gt;&lt;BR&gt;View created.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; UPDATE EMP_VIEW20&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; SET &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ENAME = &#039;TEST5&#039;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; 3&amp;nbsp; WHERE EMPNO = 7876;&lt;BR&gt;SET ENAME = &#039;TEST5&#039;&lt;BR&gt;&amp;nbsp; &amp;nbsp; *&lt;BR&gt;ERROR at line 2:&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;ORA-01733: virtual column not allowed here&lt;/SPAN&gt; (가상 열은 사용할 수 없습니다.)&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;참고 자료 : 클릭하세요. 오라클 10g + PL/SQL 입문&lt;BR&gt;</description>
			<category>Oracle</category>
			<category>view</category>
			<category>with check option</category>
			<category>with read only</category>
			<author>(sunshiny)</author>
			<guid>http://develop.sunshiny.co.kr/534</guid>
			<comments>http://develop.sunshiny.co.kr/534#entry534comment</comments>
			<pubDate>Sun, 01 Aug 2010 13:20:27 +0900</pubDate>
		</item>
		<item>
			<title>Oracle - VIEW 를 생성할 때 지정하는 FORCE / NOFORCE 옵션</title>
			<link>http://develop.sunshiny.co.kr/533</link>
			<description>- 뷰를 생성하는 경우에 일반적으로 기본 테이블이 존재한다는 가정하에서 쿼리문을 작성합니다. 극히 드물기는 하지만, &lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;기본 테이블이 존재하지 않는 경우에도 뷰를 생성할 수 잇는데 이때에는 FORCE 옵션이 지정되어 있어야 합니다&lt;/SPAN&gt;. 특별한 설정이 없으면 NOFORCE 옵션이 지정된 것이므로 반드시 존재하는 기본 테이블을 이용한 쿼리문으로 뷰를 생성해야 합니다.&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; DESC EMPLOYEES;&lt;BR&gt;ERROR:&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ORA-04043: object EMPLOYEES does not exist&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; CREATE OR REPLACE VIEW VIEW_EMPLOYEES&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS &lt;BR&gt;&amp;nbsp; 3&amp;nbsp; SELECT * &amp;nbsp; &lt;BR&gt;&amp;nbsp; 4&amp;nbsp; FROM EMPLOYEES;&lt;BR&gt;FROM EMPLOYEES&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; *&lt;BR&gt;ERROR at line 4:&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ORA-00942: table or view does not exist&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; CREATE OR REPLACE &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;FORCE &lt;/SPAN&gt;VIEW VIEW_EMPLOYEES&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS&lt;BR&gt;&amp;nbsp; 3&amp;nbsp; SELECT * &lt;BR&gt;&amp;nbsp; 4&amp;nbsp; FROM EMPLOYEES;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;Warning: View created with compilation errors.&lt;/SPAN&gt;&lt;BR&gt;&lt;BR style=&quot;COLOR: rgb(212,26,1)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 경고는 발생하지만 뷰가 생성되었다는 메시지를 출력합니다.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(212,26,1)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 생성된 뷰를 데이터 딕셔너리인 USER_VIEWS를 통해서 검색할수 있습니다.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;SELECT VIEW_NAME, TEXT FROM USER_VIEWS;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;VIEW_NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; TEXT &lt;BR&gt;------------------------- ------------------------------------&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;VIEW_EMPLOYEES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SELECT *&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(212,26,1)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM EMPLOYEES&lt;/SPAN&gt;&lt;BR&gt;--------------------------------------------------------------&lt;BR&gt;CHECK_OPTION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT empno, ename, deptno, job&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM&amp;nbsp; emp_test3&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE deptno = 10&lt;BR&gt;SQL&amp;gt; &lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;참고 자료 : 클릭하세요. 오라클 10g + PL/SQL 입문&lt;BR&gt;</description>
			<category>Oracle</category>
			<category>force</category>
			<category>noforce</category>
			<category>view</category>
			<author>(sunshiny)</author>
			<guid>http://develop.sunshiny.co.kr/533</guid>
			<comments>http://develop.sunshiny.co.kr/533#entry533comment</comments>
			<pubDate>Sun, 01 Aug 2010 12:48:30 +0900</pubDate>
		</item>
		<item>
			<title>Oracle - TRUNCATE와 DELETE의 차이</title>
			<link>http://develop.sunshiny.co.kr/532</link>
			<description>&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;- TRUNCATE 라는 명령은 해당 테이블의 모든 로우들을 잘라내는 기능을 하는 DDL 명령어로서 자동 커밋이 발생합니다.&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;- TRUNCATE TABLE 명령어를 수행하면 테이블의 구조는 남아있지만, 해당 테이블의 모든 컬럼의 내용이 삭제됩니다.&lt;/SPAN&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; SELECT * FROM EMP_05;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7654 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 28-SEP-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1400 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 02-APR-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7844 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 08-SEP-98 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 17-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 5000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 40&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7521 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 22-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 01-MAY-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2850 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 09-JUN-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2450 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7934 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 23-JAN-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7499 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 20-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1600 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 09-NOV-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7900 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1957 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7369 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 12-JAN-83 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;15 rows selected.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; TRUNCATE TABLE EMP_05;&lt;BR&gt;&lt;BR&gt;Table truncated.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_05;&lt;BR&gt;&lt;BR&gt;no rows selected&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ROLLBACK;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Rollback complete.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_05;&lt;BR&gt;&lt;BR&gt;no rows selected&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;/DIV&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;- TRUNCATE 명령어는 DDL로써 자동 커밋이 일어나기 때문에 DML 명령어인 DELETE와는 표면적인 기능은 같을지 모르겠지만 중요한 차이가 있습니다.&lt;/SPAN&gt;&lt;BR&gt;- DELETE 명령어를 수행할때 아무런 조건도 명시하지 않으면 테이블 내의 내용이 전부 삭제 됩니다. 하지만 테이블의 구조는 남아있습니다. 이러한 결과를 보면 DELETE와 TRUNCATE 명령어는 표면적인 기능은 같습니다. 하지만 &lt;SPAN style=&quot;COLOR: rgb(212,26,1); FONT-WEIGHT: bold&quot;&gt;TRUNCATE 명령어는 DDL 로써 자동 커밋이 일어나므로 삭제되기 이전 상태로 복귀할 수 없지만, DELETE는 DML 명령어이기 때문에 자동 커밋되지 않아서 언제든지 삭제되기 이전 상태로 롤백할 수 있습니다.&lt;/SPAN&gt;&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; SELECT * FROM EMP_04&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; ;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7654 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 28-SEP-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1400 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 02-APR-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7844 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 08-SEP-98 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 17-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 5000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 40&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7521 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 22-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 01-MAY-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2850 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 09-JUN-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2450 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7934 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 23-JAN-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7499 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 20-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1600 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 09-NOV-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7900 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1957 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7369 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 12-JAN-83 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;15 rows selected.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; DELETE FROM EMP_04;&lt;BR&gt;&lt;BR&gt;15 rows deleted.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_04;&lt;BR&gt;&lt;BR&gt;no rows selected&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ROLLBACK;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Rollback complete.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_04;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7654 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 28-SEP-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1400 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 02-APR-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7844 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 08-SEP-98 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 17-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 5000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 40&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7521 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 22-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 01-MAY-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2850 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 09-JUN-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2450 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7934 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 23-JAN-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7499 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 20-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1600 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 09-NOV-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7900 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1957 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7369 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 12-JAN-83 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;15 rows selected.&lt;/DIV&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# 롤백이 가능하기 위해서는 하나의 행을 기준으로 수행될 때 무수히 많은 BEFORE IMAGE가 생성 됩니다. 그러므로 롤백 세그먼트에 허용량을 초과할 수 있습니다. 그러므로 만일 확신이 서는(명확히 삭제해야 하는)경우 DELETE 보다는 TRUNCATE 가 효율적입니다.&lt;/SPAN&gt;&lt;BR style=&quot;FONT-WEIGHT: bold&quot;&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;# TRUNCATE 는 한 테이블에 속하는 모든 로우를 잘라내는 것이지만, DELETE 명령어는 삭제하고자 하는 로우들을 선택할 수 있습니다.&lt;/SPAN&gt;&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; SELECT * FROM EMP_04;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7654 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 28-SEP-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1400 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 02-APR-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7844 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 08-SEP-98 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 17-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 5000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 40&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7521 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 22-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 01-MAY-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2850 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 09-JUN-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2450 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7934 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 23-JAN-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7499 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 20-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1600 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 09-NOV-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7900 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1957 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7369 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 12-JAN-83 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;15 rows selected.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;DELETE FROM EMP_04 &lt;/SPAN&gt;&lt;BR style=&quot;FONT-WEIGHT: bold&quot;&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;&amp;nbsp; 2&amp;nbsp; WHERE EMPNO IN(7788, 7900);&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;2 rows deleted.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; SELECT * FROM EMP_04;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7654 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 28-SEP-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1400 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 02-APR-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2975 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7844 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 08-SEP-98 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7566 03-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7368 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 17-NOV-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 5000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 40&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7521 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 22-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1250 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 500 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 01-MAY-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2850 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 30&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7839 09-JUN-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2450 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7934 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7782 23-JAN-82 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 10&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7499 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7698 20-FEB-81 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1600 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&lt;BR&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; MGR HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; COMM &amp;nbsp; &amp;nbsp; DEPTNO&lt;BR&gt;---------- ---------- ------------ ---------- ---------- ----------&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7369 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7902 17-NOV-80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 800 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7876 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7788 12-JAN-83 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 20&lt;BR&gt;&lt;BR&gt;13 rows selected.&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- DELETE 명령어로 삭제된 내용이 완전하게 데이터베이스에 적용되도록 하려면 사용자가 직접 커밋 명령을 수행해야 합.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; COMMIT;&lt;BR&gt;&lt;BR&gt;Commit complete.&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;참고 자료 : 클릭하세요. 오라클 10g + PL/SQL 입문&lt;BR&gt;&lt;BR&gt;</description>
			<category>Oracle</category>
			<category>delete</category>
			<category>truncate</category>
			<author>(sunshiny)</author>
			<guid>http://develop.sunshiny.co.kr/532</guid>
			<comments>http://develop.sunshiny.co.kr/532#entry532comment</comments>
			<pubDate>Sun, 01 Aug 2010 12:27:19 +0900</pubDate>
		</item>
		<item>
			<title>Oracle - 테이블 갱신시 발생한 락을 해결하는 방법</title>
			<link>http://develop.sunshiny.co.kr/531</link>
			<description>- 테이블을 제거하는 명령어로 DROP이란 명령어가 있습니다.&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;이는 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;DLL 언어로서 이를 수행하면 문장 하나가 실행됨과 동시에 바로 자동 커밋하여 트랜잭션을 종료&lt;/SPAN&gt; 하지만 테이블 내의 행을 삭제하는 명령어인 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;DELETE는 DML 언어로서 언두 세그먼트(UNDO SEGMENT)에 이전 이미지를 저장하고 있다가 사용자가 커밋이나 롤백 명령어를 수행할 때에서야 트랜잭션이&lt;/SPAN&gt; 끝나게 됩니다.&lt;/SPAN&gt;&lt;BR&gt;- 한 사용자가 ALTER TABLE ~ DROP 명령어로 특정 컬럼을 삭제하는 작업을 하면 해당 컬럼에 있는 모든 자료도 삭제 된 후에 컬럼이 삭제 되야 하므로 해당 컬럼에 데이터가 많은 경우는 작업 시간이 오래 걸릴 수도 있습니다.&lt;BR&gt;&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; CREATE TABLE EMP03&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS SELECT * FROM EM01&lt;BR&gt;&amp;nbsp; 3&amp;nbsp; ;&lt;BR&gt;&lt;BR&gt;Table created.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; DESC EMP03&lt;BR&gt;&amp;nbsp;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Null? &amp;nbsp;&amp;nbsp; Type&lt;BR&gt;&amp;nbsp;----------------------------------------- -------- ----------------------------&lt;BR&gt;&amp;nbsp;EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NOT NULL NUMBER(4)&lt;BR&gt;&amp;nbsp;ENAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; VARCHAR2(10)&lt;BR&gt;&amp;nbsp;JOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; VARCHAR2(9)&lt;BR&gt;&amp;nbsp;MGR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(4)&lt;BR&gt;&amp;nbsp;HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATE&lt;BR&gt;&amp;nbsp;SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;COMM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;DEPTNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(2)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 컬럼을 삭제하는 작업이 진행될 경우 다른 사용자는 해당 테이블을 이용할 수 없다. 이때 DDL lock이 발생하게 된다.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ALTER TABLE EMP03 DROP COLUMN ENAME;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Table altered.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; DESC EMP03&lt;BR&gt;&amp;nbsp;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Null? &amp;nbsp;&amp;nbsp; Type&lt;BR&gt;&amp;nbsp;----------------------------------------- -------- ----------------------------&lt;BR&gt;&amp;nbsp;EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NOT NULL NUMBER(4)&lt;BR&gt;&amp;nbsp;JOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; VARCHAR2(9)&lt;BR&gt;&amp;nbsp;MGR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(4)&lt;BR&gt;&amp;nbsp;HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATE&lt;BR&gt;&amp;nbsp;SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;COMM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;DEPTNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(2)&lt;BR&gt;&lt;/DIV&gt;- 그런데 이때 또 다른 사용자가 해당 테이블을 접근해서 DML 등의 작업을 하려한다면 해당 테이블은 ALTER 구문에 의해 이미 DDL 락이 걸려 있으므로 뒤에 오는 사용자는 선행 작업이 끝날 대가지 기다려야만 합니다. 이런 경우에 뒤의 사용자를 기다리게 하지 않기 위한 해결 방법을 찾아보도록 하겠습니다.&lt;BR&gt;- 테이블을 갱신할 때 발생한 락을 해결하는 방법을 학습해 보도록 하겠습니다. 앞서 학습한 바와 같이 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;SET UNUSED&lt;/SPAN&gt; 라는 키워드는 해당 컬럼을 실제로 삭제하는 게 아니라 삭제 될 것이라고 표시만 하는 논리적 삭제만 일어나므로 실제 수행 시간은 극히 짧습니다. 따라서 락이 걸리는 시간도 극히 짧으므로 다른 사용자의 사용 제한 시간이 상대적으로짧아지게 됩니다.&lt;BR&gt;- 그러므로 테이블이 자주 사용되는 시간(근무시간)에는 불필요하게 된 컬럼을 바로삭제하지 말고 우선 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;SET UNUSED&lt;/SPAN&gt; 라는 키워드로 다른 사용자들이 접근하지 못하도록 제한만 둡니다.&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(228,228,228); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;SQL&amp;gt; CREATE TABLE EMP04&lt;BR&gt;&amp;nbsp; 2&amp;nbsp; AS SELECT * FROM EM01&lt;BR&gt;&amp;nbsp; 3&amp;nbsp; ;&lt;BR&gt;&lt;BR&gt;Table created.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;BR&gt;SQL&amp;gt; &lt;BR&gt;SQL&amp;gt; &lt;BR&gt;SQL&amp;gt; DESC EMP04&lt;BR&gt;&amp;nbsp;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Null? &amp;nbsp;&amp;nbsp; Type&lt;BR&gt;&amp;nbsp;----------------------------------------- -------- ----------------------------&lt;BR&gt;&amp;nbsp;EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NOT NULL NUMBER(4)&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;&amp;nbsp;ENAME&lt;/SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VARCHAR2(10)&lt;BR&gt;&amp;nbsp;JOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; VARCHAR2(9)&lt;BR&gt;&amp;nbsp;MGR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(4)&lt;BR&gt;&amp;nbsp;HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATE&lt;BR&gt;&amp;nbsp;SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;COMM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;DEPTNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(2)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 실제로 ENAME 컬럼이 존재하지만 논리적으로 사용을 제한하기 위해서 UNUSED 속성을 지정한다.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(212,26,1)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- 속성을 지정한후에는 ENAME 컬럼이 검색 되지 않는다.&lt;/SPAN&gt;&lt;BR&gt;SQL&amp;gt; &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;ALTER TABLE EMP04 SET UNUSED(ENAME);&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Table altered.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; DESC EMP04 &amp;nbsp; &lt;BR&gt;&amp;nbsp;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Null? &amp;nbsp;&amp;nbsp; Type&lt;BR&gt;&amp;nbsp;----------------------------------------- -------- ----------------------------&lt;BR&gt;&amp;nbsp;EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NOT NULL NUMBER(4)&lt;BR&gt;&amp;nbsp;JOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; VARCHAR2(9)&lt;BR&gt;&amp;nbsp;MGR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(4)&lt;BR&gt;&amp;nbsp;HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATE&lt;BR&gt;&amp;nbsp;SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;COMM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;DEPTNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(2)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(212,26,1)&quot;&gt;-- UNUSED 설정이 되어있는 컬럼을 삭제 한다.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;SQL&amp;gt; ALTER TABLE EMP04 DROP UNUSED COLUMNS;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Table altered.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; DESC EMP04&lt;BR&gt;&amp;nbsp;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Null? &amp;nbsp;&amp;nbsp; Type&lt;BR&gt;&amp;nbsp;----------------------------------------- -------- ----------------------------&lt;BR&gt;&amp;nbsp;EMPNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NOT NULL NUMBER(4)&lt;BR&gt;&amp;nbsp;JOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; VARCHAR2(9)&lt;BR&gt;&amp;nbsp;MGR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(4)&lt;BR&gt;&amp;nbsp;HIREDATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATE&lt;BR&gt;&amp;nbsp;SAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;COMM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER(7,2)&lt;BR&gt;&amp;nbsp;DEPTNO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;# UNUSED 속성을 지정한 컬럼을 다시 USED로 변경하는 작업은 없는듯 합니다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;참고 자료 : 클릭하세요. 오라클 10g + PL/SQL 입문&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;</description>
			<category>Oracle</category>
			<category>unused</category>
			<author>(sunshiny)</author>
			<guid>http://develop.sunshiny.co.kr/531</guid>
			<comments>http://develop.sunshiny.co.kr/531#entry531comment</comments>
			<pubDate>Sun, 01 Aug 2010 11:53:22 +0900</pubDate>
		</item>
	</channel>
</rss>
