<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">Oracle Tip</title>
      <subtitle type="html">오라클 Tip 게시판 입니다.</subtitle>
      <updated>2012-02-08T05:17:25+09:00</updated>
   <id>http://www.sqler.com/index.php?mid=bOracleTip&amp;act=atom</id>
   <link rel="alternate" type="text/html" hreflang="ko" href="http://www.sqler.com/bOracleTip"/>
   <link rel="self" type="application/atom+xml" href="http://www.sqler.com/index.php?mid=bOracleTip&amp;act=atom"/>
   <generator uri="http://www.xpressengine.com/" version="1.4.5.9">XpressEngine</generator>
   <entry>
      <title>[tip] Oracle 병렬처리 사용</title>
      <id>http://www.sqler.com/255690</id>
      <published>2010-09-08T21:59:41+09:00</published>
      <updated>2010-09-09T09:50:59+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/255690"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/255690#comment"/>
      <author>
         <name>생기발랄</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;안녕하세요. Oracle 에서 Parallel SQL 사용법에 대해서 간략히 알려드립니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;대용량 작업의 경우 병렬처리는 작업시간을 줄여주는 고마운 존재 입니다. &lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;물론 cpu 를 많이 가져다 쓰기 때문에 언제 어디서나&amp;nbsp;사용할 수 있는 방법은 아닙니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;시스템의 사용을 내가 마음대로 해도 된다는 가정하에 memory, cpu를 마음껏 쓸 수 있다면 sort_area_size 를 늘려주고, 병렬처리를 할 때 투입될 cpu를 늘려준다면 작업시간이 단축될 것으로 예상됩니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;병렬처리 적용 방법은 아래처럼 3가지를 일반적으로 말합니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;1. Table 이나 index 속성에 Parallel 속성을 주면 모든 쿼리에 병렬처리가 적용됩니다. &amp;lt;- 일반적으로 이렇게 안씁니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;2.&amp;nbsp;seesion level에서 병렬 옵션을 주는 방법이 있다고 합니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;3. Database level에서 병렬 옵션을 주는 방법이 있다고 합니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;2. 의 경우는 서버마다 설정이 다르고 조건이 조금씩 다릅니다. DDL, DML, QUERY(SELECT) 를 수행하기 전에 alter session 으로 session 상태를 변경해야 합니다. &lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;1.의 경우가 아닌 이상 병렬처리 hint를 주어야 병렬처리가 됩니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;현재&amp;nbsp;Test는 3. 의 환경에서 합니다. Oracle 9i 입니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;--&amp;nbsp;TLOG07TT 은 Partition Table 입니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;SQL&amp;gt; explain plan set statement_id = &apos;SQL1&apos; for SELECT COUNT(*) FROM TLOG07TT;&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;해석되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;경&amp;nbsp;&amp;nbsp; 과: 00:00:00.00&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;SQL&amp;gt; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(&apos;PLAN_TABLE&apos;, &apos;SQL1&apos;, &apos;TYPICAL&apos;));&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;PLAN_TABLE_OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;| Id&amp;nbsp; | Operation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Rows&amp;nbsp; | Bytes | Cost&amp;nbsp; | Pstart| Pstop |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 0 | SELECT STATEMENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 99556 |&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;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; SORT AGGREGATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&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;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp;&amp;nbsp; PARTITION RANGE ALL|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp;&amp;nbsp;&amp;nbsp; TABLE ACCESS FULL | TLOG07TT&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 84M|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 99556 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;Note: cpu costing is off&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;11 개의 행이 선택되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Monospace&quot;&gt;경&amp;nbsp;&amp;nbsp; 과: 00:00:00.03&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;위의 경우는 Parallel&amp;nbsp; 이 실행되지 않은 것입니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;아래가 Parallel 사용 예 입니다.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;SQL&amp;gt; explain plan set statement_id = &apos;SQL1&apos; for SELECT &lt;span style=&quot;COLOR: #ffffff; BACKGROUND-COLOR: #ff0000&quot;&gt;/*+ PARALLEL(TLOG07TT 4)*/ &lt;/span&gt;COUNT(*) FROM TLOG07TT;&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;해석되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;경&amp;nbsp;&amp;nbsp; 과: 00:00:00.00&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;SQL&amp;gt; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(&apos;PLAN_TABLE&apos;, &apos;SQL1&apos;, &apos;TYPICAL&apos;));&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;PLAN_TABLE_OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;----------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;| Id&amp;nbsp; | Operation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Rows&amp;nbsp; | Bytes | Cost&amp;nbsp; | Pstart| Pstop |&amp;nbsp; TQ&amp;nbsp; |IN-OUT| PQ Distrib |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;----------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 0 | SELECT STATEMENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 24889 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; SORT AGGREGATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp;&amp;nbsp; SORT AGGREGATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |99,00 | &lt;strong&gt;&lt;span style=&quot;COLOR: #ffffff; BACKGROUND-COLOR: #ff0000&quot;&gt;P-&amp;gt;S&lt;/span&gt;&lt;/strong&gt; |&lt;span style=&quot;BACKGROUND-COLOR: #ff0000&quot;&gt;&lt;span style=&quot;BACKGROUND-COLOR: #ff0000&quot;&gt; QC (RANDOM)|&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp;&amp;nbsp;&amp;nbsp; PARTITION RANGE ALL|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 |99,00 | &lt;span style=&quot;COLOR: #ffffff; BACKGROUND-COLOR: #ff0000&quot;&gt;PCWP&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; |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;|&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TABLE ACCESS FULL | TLOG07TT&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 84M|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 24889 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 |99,00 | &lt;span style=&quot;COLOR: #ffffff; BACKGROUND-COLOR: #ff0000&quot;&gt;PCWP&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; |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;----------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;Note: cpu costing is off&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;12 개의 행이 선택되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10px; FONT-FAMILY: Monospace&quot;&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위의 붉은색으로 표시된 부분이 병렬처리를 나타내는 부분입니다.&lt;/p&gt;
&lt;p&gt;약자는 아래와 같습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; P-&amp;gt;S&amp;nbsp; : Parallel to serial&lt;/p&gt;
&lt;p&gt;&amp;nbsp; QC : Query coordinator&lt;/p&gt;
&lt;p&gt;&amp;nbsp; PCWP : Parallel combined with parent&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Toad 에서는 실행계획은 Tree 형태로 보는 경우 좀 더 이쁘게 보입니다. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.sqler.pe.kr/files/attach/images/105279/690/255/parallel.JPG&quot; alt=&quot;parallel.JPG&quot; title=&quot;parallel.JPG&quot; width=&quot;687&quot; height=&quot;265&quot; style=&quot;&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 외에 PARALLEL_INDEX, INDEX_FFS 등을 사용하여 병렬처리를 지정할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;^^&lt;/p&gt;
&lt;p&gt;1. Partition table 아닌 Heap table의 경우는 INDEX FAST FULL SCAN 을 사용해야 병렬처리가 가능합니다.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;2. 해당 hint에 정렬 순서를 지정할 수 있는 방법을 여기저기(OTN, &amp;nbsp;psoug.org) 뒤져보았지만....&lt;/p&gt;
&lt;p&gt;정렬 순서를 지정하는 hint나 hint에 속성으로 정렬을 지정하는 것은 발견하지 못했습니다.&lt;/p&gt;
&lt;p&gt;아시는 분 계시면 좀 알려주세요. ^^&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Oracle Exadata V2</title>
      <id>http://www.sqler.com/202807</id>
      <published>2010-07-24T20:35:06+09:00</published>
      <updated>2010-08-15T21:25:25+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/202807"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/202807#comment"/>
      <author>
         <name>Alucard</name>
                  <uri>http://www.sqler.com</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;ORACLE의 Exadata... 좋긴 좋네요... -ㅁ -;;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;embed height=&quot;385&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;640&quot; src=&quot;http://www.youtube.com/v/y8sPF4NgVzU&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;/&gt;&lt;/object&gt;&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;embed height=&quot;385&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;640&quot; src=&quot;http://www.youtube.com/v/XB68ExOi0hg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;/&gt;&lt;/object&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>테이블/컬럼변경시 영향받는 오브젝트 찾기</title>
      <id>http://www.sqler.com/113229</id>
      <published>2009-04-02T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113229"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113229#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;
&lt;BR /&gt;
&lt;BR /&gt;1. 변경테이블에 대한 object 찾기
&lt;BR /&gt;select * 
&lt;BR /&gt;from DBA_DEPENDENCIES 
&lt;BR /&gt;where owner = &quot;INF&quot;
&lt;BR /&gt;  --and referenced_type =&quot;TABLE&quot;
&lt;BR /&gt;  and referenced_name = &quot;GC영업기회별수행결과&quot;;  -- 변경된 테이블
&lt;BR /&gt;
&lt;BR /&gt;2. 소스라인 찾기
&lt;BR /&gt;select * 
&lt;BR /&gt;from dba_source 
&lt;BR /&gt;where owner = &quot;INF&quot;
&lt;BR /&gt;  and TEXT  like &quot;%GC영업기회별수행결과%&quot;; -- 해당 테이블이나 컬럼명
&lt;BR /&gt;
&lt;BR /&gt;  
&lt;BR /&gt;  
&lt;BR /&gt;3. layout (참고사항임)
&lt;BR /&gt;DBA_DEPENDENCIES----------------------------------------
&lt;BR /&gt;Column Name    ID    Data Type    Null?
&lt;BR /&gt;OWNER			1	VARCHAR2 (30 Byte)	N
&lt;BR /&gt;NAME			2	VARCHAR2 (30 Byte)	N
&lt;BR /&gt;TYPE			3	VARCHAR2 (17 Byte)	Y
&lt;BR /&gt;REFERENCED_OWNER	                4	VARCHAR2 (30 Byte)	Y
&lt;BR /&gt;REFERENCED_NAME		5	VARCHAR2 (64 Byte)	Y
&lt;BR /&gt;REFERENCED_TYPE		6	VARCHAR2 (17 Byte)	Y
&lt;BR /&gt;REFERENCED_LINK_NAME	7	VARCHAR2 (128 Byte)	Y
&lt;BR /&gt;DEPENDENCY_TYPE		8	VARCHAR2 (4 Byte)	Y
&lt;BR /&gt;
&lt;BR /&gt;dba_source----------------------------------  
&lt;BR /&gt;Column Name	ID	Data Type	Null?
&lt;BR /&gt;OWNER	1	VARCHAR2 (30 Byte)	Y
&lt;BR /&gt;NAME	2	VARCHAR2 (30 Byte)	Y
&lt;BR /&gt;TYPE	3	VARCHAR2 (12 Byte)	Y
&lt;BR /&gt;LINE	4	NUMBER	Y
&lt;BR /&gt;TEXT	5	VARCHAR2 (4000 Byte)	Y
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Oracle10g R2 WindowsXP 설치기</title>
      <id>http://www.sqler.com/113227</id>
      <published>2008-10-13T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113227"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113227#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;뜻하지 않게 Oracle 설치할 기회가 생겨서 좌충우돌 하면서 설치한 내용입니다.
&lt;BR /&gt;혹 Windows 계열에 설치해볼려는 분들은 참고하세요.^^
&lt;BR /&gt;
&lt;BR /&gt;OS : WindowsXP SP3
&lt;BR /&gt;CPU : Intel QuardCore
&lt;BR /&gt;RAM : 4GB RAM
&lt;BR /&gt;DBMS : Oracle10g R2 win32  ( www.oracle.co.kr 에서 download )
&lt;BR /&gt;
&lt;BR /&gt;---------------------------------------------------------------------------------------
&lt;BR /&gt;
&lt;BR /&gt;1차 설치 :  오라클 설치를 고급설치로 하고 데이터베이스 생성을 DBCA를 이용해서 생성.
&lt;BR /&gt;
&lt;BR /&gt;설치방식 - 고급설치
&lt;BR /&gt;설치유형 - 사용자 정의
&lt;BR /&gt;제품구성요소
&lt;BR /&gt;  - Oracle Database 10g
&lt;BR /&gt;  - Oracle Enterprise Manager Console DB ( EM 사용시 )
&lt;BR /&gt;  - Enterprise Edition Options -&gt; Oracle Partitioning (그외 나머지는 필요시 설치)
&lt;BR /&gt;  - Oracle Call Interface (OCI)
&lt;BR /&gt;  - iSQL*Plus
&lt;BR /&gt;데이터베이스 생성 - 데이터베이스 소프트웨어만 설치
&lt;BR /&gt;Configuration Assistant
&lt;BR /&gt;  - Oracle Net Configuration Assistant 문제 발생시 중지후 다음넘어감
&lt;BR /&gt;종료
&lt;BR /&gt;
&lt;BR /&gt; 
&lt;BR /&gt;데이터베이스 생성
&lt;BR /&gt;Database Configuration Assistant(DBCA) 유틸리티 이용
&lt;BR /&gt;작업선택 - 데이터베이스 생성
&lt;BR /&gt;템플리트 선택 - 범용
&lt;BR /&gt;데이터베이스 이름, SID - 동일하게 설정
&lt;BR /&gt;Enterprise Manager 관리 - 넘어감
&lt;BR /&gt;암호지정
&lt;BR /&gt;저장방식 - 파일시스템
&lt;BR /&gt;파일 위치지정
&lt;BR /&gt;  - 모든 데이터베이스파일에 공통 위치 사용(추후 다른 파일 시스템에 생성가능)
&lt;BR /&gt;  - Oracle-Managed File 사용시 지정된 파일 시스템에만 파일생성되어서 문제를 발생시킬수 있음
&lt;BR /&gt;데이터베이스 복구옵션
&lt;BR /&gt;  - 플래시 복구 영역지정 체크안함(필요시 추후 수동 설정가능함)
&lt;BR /&gt;  - 아카이브 활성화 체크안함(필요시 추후 수동 설정)
&lt;BR /&gt;데이터베이스 내용
&lt;BR /&gt;  - 샘플 스키마 체크
&lt;BR /&gt;초기화 매개변수
&lt;BR /&gt;  - 사용자 정의 : 공유 메모??관리 자동체크
&lt;BR /&gt;  - 공유 풀은 최소 60MB 이상 설정, 나머지 기본값
&lt;BR /&gt;저장 영역
&lt;BR /&gt;  - 파일 위치,이름및 크기 지정
&lt;BR /&gt;데이터베이스 생성
&lt;BR /&gt;  - 암호관리 - 사용할 샘플 계정 잠금 해제
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;-&gt; 데이터베이스 생성진행화면에서 
&lt;BR /&gt;    ORA-12154:TNS:지정된 접속 식별자를 분석할 수 없슴,
&lt;BR /&gt;    ORA-01017:?????,?????
&lt;BR /&gt;   위 두개의 에러가 반복 발생함.  
&lt;BR /&gt;   오류를 무시하고 계속 설치후 설치완료
&lt;BR /&gt;   설치완료후 sqlplus 로 관리자 접속 성공.  쿼리정상확인. but EM 작동안함. 
&lt;BR /&gt;
&lt;BR /&gt;-&gt; 뭔가 깨름칙 하여 모두 언인스톨 하고 설치된 Oracle 디렉토리 몽땅 지움.
&lt;BR /&gt;
&lt;BR /&gt;--------------------------------------------------------------------------------------
&lt;BR /&gt;
&lt;BR /&gt;2차 설치 :  오라클 설치를 기본설치로 하고 시작 데이터베이스 생성 선택
&lt;BR /&gt;
&lt;BR /&gt;설치방식 - 기본 설치
&lt;BR /&gt;설치유형 - 원하는 Edition 선택
&lt;BR /&gt;시작 데이터베이스 생성 체크
&lt;BR /&gt;설치 정상 종료
&lt;BR /&gt;
&lt;BR /&gt;Enterprise Manager 데이터베이스 컨트롤 URL  :
&lt;BR /&gt;http://mycom:1158/em/
&lt;BR /&gt;
&lt;BR /&gt;iSQL*Plus URL:
&lt;BR /&gt;http://mycom:5560/isqlplus
&lt;BR /&gt;
&lt;BR /&gt;EM 및 iSQLPlus 접속성공.
&lt;BR /&gt;
&lt;BR /&gt;방화벽 포트 열어줌 (설정-제어판-Windows 방화벽-예외- 포트추가)
&lt;BR /&gt;1158(EM용), 5560(iSQLPlus용), 7777(리스너용 임의설정포트:기본1521을 변경)
&lt;BR /&gt;
&lt;BR /&gt;리스너 설정
&lt;BR /&gt;Net Configuration Assistant
&lt;BR /&gt;리스너 구성 -추가-리스너명-프로토콜 - TCP-포트 - 7777
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;문제점1) 외부 클라이언트에서 SQLPlus 접속안됨
&lt;BR /&gt;
&lt;BR /&gt;-&gt; ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함
&lt;BR /&gt;   - tnsping test 는 성공.
&lt;BR /&gt;   - listener.ora 수정
&lt;BR /&gt;
&lt;BR /&gt;기존) Net Configuration Assistant  설정내용
&lt;BR /&gt;
&lt;BR /&gt;SID_LIST_LISTENER =
&lt;BR /&gt;  (SID_LIST =
&lt;BR /&gt;    (SID_DESC =
&lt;BR /&gt;      (SID_NAME = PLSExtProc)
&lt;BR /&gt;      (ORACLE_HOME = c:\oracle\product\10.2.0\db_1)
&lt;BR /&gt;      (PROGRAM = orcl)
&lt;BR /&gt;    )
&lt;BR /&gt;  )
&lt;BR /&gt;
&lt;BR /&gt;변경)
&lt;BR /&gt;
&lt;BR /&gt;SID_LIST_LISTENER =
&lt;BR /&gt;  (SID_LIST =
&lt;BR /&gt;    (SID_DESC =
&lt;BR /&gt;      (SID_NAME = PLSExtProc)
&lt;BR /&gt;      (ORACLE_HOME = c:\oracle\product\10.2.0\db_1)
&lt;BR /&gt;      (PROGRAM = extproc)
&lt;BR /&gt;    )
&lt;BR /&gt;    (SID_DESC =
&lt;BR /&gt;      (ORACLE_HOME = c:\oracle\product\10.2.0\db_1)
&lt;BR /&gt;      (SID_NAME = orcl)
&lt;BR /&gt;    )
&lt;BR /&gt;  )
&lt;BR /&gt;-&gt; TNSListener 서비스 재시작
&lt;BR /&gt;-&gt; 클라이언트에서 sqlplus 접속성공
&lt;BR /&gt;
&lt;BR /&gt;문제점2) 리스너 포트를 7777로 바꾼후 웹EM 접속이 안됨.
&lt;BR /&gt;-&gt; 웹EM은 기존 1521포트를 이용해 접속할려고 함. EM설정바꾸는법이 복잡해서 패쑤..-.-;;
&lt;BR /&gt;-&gt; 리스너추가 -&gt; 리스너이름 : EM_Listener
&lt;BR /&gt;-&gt; 포트 1521
&lt;BR /&gt;-&gt; 리스너 서비스가 기존 7777용 리스너와 1521용 추가된 리스너가 2개 시작되고 있는지 확인
&lt;BR /&gt;-&gt; EM 접속 성공( 바로 안되고 조금 후 익스플로어 다시 시작해서 접속)
&lt;BR /&gt;
&lt;BR /&gt;-&gt; 웹(1158)으로 접근하기때문에 방화벽에 1521 추가할 필요없슴
&lt;BR /&gt; 
&lt;BR /&gt;
&lt;BR /&gt;설치된 서비스
&lt;BR /&gt;OracleDBConsoleorcl                           - 자동     - EM접속용
&lt;BR /&gt;OracleJobSchedulerORCL                        - 사용안함 - 스케쥴용
&lt;BR /&gt;OracleOraDb10g_home1iSQL*Plus                 - 자동     - iSQL*Plus 사용시
&lt;BR /&gt;OracleOraDb10g_home1TNSListener               - 자동     - 리스너 사용시 (외부 원격 접속용)
&lt;BR /&gt;OracleOraDb10g_home1TNSListenerEM_Listener    - 자동     - 리스너 사용시 (EM 접속용)
&lt;BR /&gt;OracleServiceORCL                             - 자동     - 오라클 서비스
&lt;BR /&gt;
&lt;BR /&gt;sysman 에게 sysdba 권한부여
&lt;BR /&gt;grant sysdba to sysman
&lt;BR /&gt;
&lt;BR /&gt;* OS 리부팅 필요없슴
&lt;BR /&gt;
&lt;BR /&gt;추가 테이블스페이스 생성
&lt;BR /&gt;
&lt;BR /&gt;CREATE TABLESPACE MY_TBS
&lt;BR /&gt;
&lt;BR /&gt;DATAFILE &quot;c:\data\MY_TBS.dbf&quot; size 10m
&lt;BR /&gt;EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
&lt;BR /&gt;SEGMENT SPACE MANAGEMENT AUTO;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;자동증가 변경(기본값이 OFF임. 반드시 변경해줘야함. 그래야 난중에 안 곤난함)
&lt;BR /&gt;ALTER DATABASE DATAFILE &quot;c:\data\MY_TBS.dbf&quot; AUTOEXTEND ON;
&lt;BR /&gt;
&lt;BR /&gt;유저생성
&lt;BR /&gt;CREATE USER MYUSER IDENTIFIED BY 암호
&lt;BR /&gt;DEFAULT TABLESPACE MY_TBS
&lt;BR /&gt;TEMPORARY TABLESPACE TEMP
&lt;BR /&gt;QUOTA 0M ON SYSTEM  -- 시스템용 테이블스페이스 사용금지
&lt;BR /&gt;QUOTA 0M ON SYSAUX  -- 시스템용 테이블스페이스 사용금지
&lt;BR /&gt;
&lt;BR /&gt;권한부여
&lt;BR /&gt;grant connect, resource to MYUSER;
&lt;BR /&gt;
&lt;BR /&gt;*create 구문으로 유저생성시 암호에 특수문자 못넣음.
&lt;BR /&gt;*EM에서 넣던지, 암호만료를 시켜서 다음 접속시 암호 바꾸게 해서 특수문자등 넣어야 함
&lt;BR /&gt;*특수문자에 @가 들어갈시 sqlplus 접속 명령어에서 dns 이름과 충돌나기때문에 넣으면 안됨
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;외부클라이언트 설정
&lt;BR /&gt;
&lt;BR /&gt;*Oracle10g_Client_R2_win32 설치
&lt;BR /&gt;
&lt;BR /&gt;접속할 클라이언트 설정
&lt;BR /&gt;tnsnames.ora
&lt;BR /&gt;ORCL =
&lt;BR /&gt;  (DESCRIPTION =
&lt;BR /&gt;    (ADDRESS = (PROTOCOL = TCP)(HOST = 접속할 컴퓨터아이피)(PORT = 7777))
&lt;BR /&gt;    (CONNECT_DATA =
&lt;BR /&gt;      (SERVER = DEDICATED)
&lt;BR /&gt;      (SERVICE_NAME = orcl)
&lt;BR /&gt;    )
&lt;BR /&gt;  )
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;* 기본설치 NO ARCHIVE Mode 임.
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>SQLPLUS [tip] 스크립터생성.실행</title>
      <id>http://www.sqler.com/113226</id>
      <published>2008-09-30T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113226"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113226#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;sqlplus 에서 쿼리문 입력 오류시&gt;
&lt;BR /&gt;
&lt;BR /&gt;ed        //sql 버퍼열림. 수정후에는 /+enter 로 실행
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;쿼리를 저장할 때&gt;
&lt;BR /&gt;spool d:\다운로드\기록.txt;    //스풀 시작
&lt;BR /&gt;spool over;          //스풀 끝
&lt;BR /&gt;exit;  //닫기
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;스크립트 저장방법&gt;
&lt;BR /&gt;**원하는 경로에 저장하기
&lt;BR /&gt;save c:\test02.sql
&lt;BR /&gt;
&lt;BR /&gt;sqlplus가 있는 폴더에 저장하려면 따로 경로지정없이 save와 파일명만 적어준다.
&lt;BR /&gt;save test02.sql
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;스크립트 실행방법&gt;
&lt;BR /&gt;@&quot;c:\demobld.sql&quot;
&lt;BR /&gt;@&quot;c:\creuser.sql&quot;
&lt;BR /&gt;
&lt;BR /&gt;&lt;보여지는 행의 크기를 넓히려면&gt;
&lt;BR /&gt;set linesize 150;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>ERwin 논리명을 comment로, grant 자동생성</title>
      <id>http://www.sqler.com/113225</id>
      <published>2008-09-30T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113225"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113225#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;[ERwin 논리명을 comment로, grant 자동생성]
&lt;BR /&gt;
&lt;BR /&gt;ERWin Database-&gt;Pre&amp;Post Scripts
&lt;BR /&gt;1. Model-level
&lt;BR /&gt;%ForEachTable() {
&lt;BR /&gt;COMMENT ON TABLE %TableName IS &quot;%EntityName&quot;;
&lt;BR /&gt;
&lt;BR /&gt;%ForEachColumn() {
&lt;BR /&gt;COMMENT ON COLUMN %TableName.%ColName IS &quot;%AttName&quot;;
&lt;BR /&gt;}
&lt;BR /&gt;}
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;2. Table-level
&lt;BR /&gt;GRANT INSERT, UPDATE, DELETE ON SIM.%TableName to ROLE_SIM_W;  
&lt;BR /&gt;GRANT SELECT ON SIM.%TableName to ROLE_SIM_R;  
&lt;BR /&gt;CREATE PUBLIC SYNONYM  %TableName FOR SIM.%TableName;  
&lt;BR /&gt;유져와 기타내용은 수정하시면 되며,  단지 예제일 뿐입니다.&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Characterset 바꾸기</title>
      <id>http://www.sqler.com/113224</id>
      <published>2008-09-30T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113224"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113224#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;오라클 설치시 인스톨러에서 데이타베이스 자동 생성을 할 경우 
&lt;BR /&gt;OS 언어에 따라 자동으로 characterset 이 설정되어 설치되는데,
&lt;BR /&gt;characterset을 임의로 변경하는 방법 입니다.
&lt;BR /&gt;
&lt;BR /&gt;변경시나리오)
&lt;BR /&gt;* 기존 개발용 오라클DB OLD_ORA 의 nls_characterset 은 US7ASCII  이다.
&lt;BR /&gt;* 기존 클라이언트 nls_lang 은 AMERICAN_AMERICA.US7ASCII 이다.
&lt;BR /&gt;* 새로운 한글windows OS에 오라클DB NEW_ORA 를 설치하였는데 nls_characterset 이 KO16MSWIN949 이다.
&lt;BR /&gt;* OLD_ORA 의 데이타를 exp 유틸로 덤프를 떠서 NEW_ORA 에 imp 유틸로 복구하였는데, 
&lt;BR /&gt;  일본및 중국 언어문자셋이 깨어져 버리고 ??? 등으로 바뀌어 유니크인덱스가 생성되지 않는다.
&lt;BR /&gt;* 데이타 이전및 개발호환을 위해 nls_characterset 을 맞추기로 하였다.
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;새로 설치하지 않고 바꾸는 법 입니다.
&lt;BR /&gt;
&lt;BR /&gt;절차 SQL&gt; SHUTDOWN IMMEDIATE;
&lt;BR /&gt;&lt;만일의 사태를 대비해 풀백업을 한다&gt;
&lt;BR /&gt;SQL&gt; STARTUP MOUNT;
&lt;BR /&gt;SQL&gt; ALTER SYSTEM ENABLE RESTRICTED SESSION;
&lt;BR /&gt;SQL&gt; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
&lt;BR /&gt;SQL&gt; ALTER SYSTEM SET AQ_TM_PROCESSES=0;
&lt;BR /&gt;SQL&gt; ALTER DATABASE OPEN;
&lt;BR /&gt;SQL&gt; ALTER DATABASE CHARACTER SET US7ASCII;
&lt;BR /&gt;SQL&gt; SHUTDOWN IMMEDIATE;
&lt;BR /&gt;SQL&gt; STARTUP;
&lt;BR /&gt;
&lt;BR /&gt;ALTER DATABASE CHARACTER SET US7ASCII 변경할때 
&lt;BR /&gt;
&lt;BR /&gt;큰집합이여야 된다는(superset) 등의 에러메세지 떨어질 경우
&lt;BR /&gt;update SYS.PROPS$ set value$=&quot;US7ASCII&quot; where name=&quot;NLS_CHARACTERSET&quot;;
&lt;BR /&gt;shutdown immediate;
&lt;BR /&gt;startup;
&lt;BR /&gt;
&lt;BR /&gt;클라이언트 nls_characterset 셋팅 :
&lt;BR /&gt;regedit
&lt;BR /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
&lt;BR /&gt;  - NLS_LANG = AMERICAN_AMERICA.US7ASCII
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;[nls 환경보기]
&lt;BR /&gt;--DB
&lt;BR /&gt;SELECT * FROM nls_database_parameters
&lt;BR /&gt; WHERE parameter=&quot;NLS_CHARACTERSET&quot; OR parameter=&quot;NLS_LANGUAGE&quot;
&lt;BR /&gt;
&lt;BR /&gt;-- session
&lt;BR /&gt;SELECT * FROM v$nls_parameters
&lt;BR /&gt;
&lt;BR /&gt;===============================================================================================
&lt;BR /&gt;
&lt;BR /&gt;위와 같이 설정후 OLD_ORA 데이타 덤프를 NEW_ORA 로 Import 시킨후 한글이 정상적으로 들어와 졌습니다.
&lt;BR /&gt;그런데  SQLTools,토드 등으로 접속후 객체브라우져로 객체 리스트 보기에서 아래와 같은 에러가 발생하면서
&lt;BR /&gt;
&lt;BR /&gt;ORA-06552: PL/SQL: Compilation unit analysis terminated
&lt;BR /&gt;ORA-06553: PLS-553: character set name is not recognized 
&lt;BR /&gt;객체리스트가 보이지 않았습니다.
&lt;BR /&gt; 
&lt;BR /&gt;원인) 아래 쿼리를 날렸을때 데이터 타입이 중복되어서 나옴
&lt;BR /&gt;쿼리) 
&lt;BR /&gt;
&lt;BR /&gt;select distinct(nls_charset_name(charsetid)) CHARACTERSET,
&lt;BR /&gt;decode(type#, 1, decode(charsetform, 1, &quot;VARCHAR2&quot;, 2, &quot;NVARCHAR2&quot;,&quot;UNKOWN&quot;),
&lt;BR /&gt;9, decode(charsetform, 1, &quot;VARCHAR&quot;, 2, &quot;NCHAR VARYING&quot;, &quot;UNKOWN&quot;),
&lt;BR /&gt;96, decode(charsetform, 1, &quot;CHAR&quot;, 2, &quot;NCHAR&quot;, &quot;UNKOWN&quot;),
&lt;BR /&gt;112, decode(charsetform, 1, &quot;CLOB&quot;, 2, &quot;NCLOB&quot;, &quot;UNKOWN&quot;)) TYPES_USED_IN
&lt;BR /&gt;from sys.col$ where charsetform in (1,2) and type# in (1, 9, 96, 112)
&lt;BR /&gt;
&lt;BR /&gt;order by types_used_in;
&lt;BR /&gt;
&lt;BR /&gt;결과) 
&lt;BR /&gt;
&lt;BR /&gt;CHARACTERSET                      TYPES_USED_IN
&lt;BR /&gt;------------------------------ -------------
&lt;BR /&gt;KO16MSWIN949                         CHAR
&lt;BR /&gt;US7ASCII                                 CHAR
&lt;BR /&gt;KO16MSWIN949                         CLOB
&lt;BR /&gt;US7ASCII                                 CLOB
&lt;BR /&gt;AL16UTF16                               NCHAR
&lt;BR /&gt;AL16UTF16                               NCLOB
&lt;BR /&gt;AL16UTF16                               NVARCHAR2
&lt;BR /&gt;KO16MSWIN949                         VARCHAR2
&lt;BR /&gt;US7ASCII                                 VARCHAR2
&lt;BR /&gt;
&lt;BR /&gt;CHAR,CLOB,VARCHAR2 에 중복된 CHARACTERSET이 존재함.
&lt;BR /&gt;위와 같은 경우 다음과 같이 조취합니다.
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;조치2) sysdba로 아래 구문들 실행 
&lt;BR /&gt;
&lt;BR /&gt;주의사항) 
&lt;BR /&gt;a) Make sure the parallel_server parameter in INIT.ORA is set to false or it is not set at all.
&lt;BR /&gt;b) Run the next script in SQLPLUS connected &quot;as sysdba&quot;
&lt;BR /&gt;
&lt;BR /&gt;SQL&gt; SHUTDOWN IMMEDIATE;
&lt;BR /&gt;SQL&gt; STARTUP MOUNT;
&lt;BR /&gt;SQL&gt; ALTER SYSTEM ENABLE RESTRICTED SESSION;
&lt;BR /&gt;SQL&gt; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
&lt;BR /&gt;SQL&gt; ALTER SYSTEM SET AQ_TM_PROCESSES=0;
&lt;BR /&gt;SQL&gt; ALTER DATABASE OPEN;
&lt;BR /&gt;SQL&gt; COL VALUE NEW_VALUE CHARSET
&lt;BR /&gt;         SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER=&quot;NLS_CHARACTERSET&quot;;
&lt;BR /&gt;SQL&gt; COL VALUE NEW_VALUE NCHARSET
&lt;BR /&gt;         SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE 
&lt;BR /&gt;PARAMETER=&quot;NLS_NCHAR_CHARACTERSET&quot;;
&lt;BR /&gt;SQL&gt; ALTER DATABASE CHARACTER SET INTERNAL_USE &amp;CHARSET;
&lt;BR /&gt;SQL&gt; ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &amp;NCHARSET;
&lt;BR /&gt;SQL&gt; SHUTDOWN IMMEDIATE;
&lt;BR /&gt;SQL&gt; STARTUP;
&lt;BR /&gt;-- yes, 2 times startup/shutdown . This is not a typo
&lt;BR /&gt;SQL&gt; SHUTDOWN IMMEDIATE;
&lt;BR /&gt;SQL&gt; STARTUP;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;만약 실행중 다음과 같은 오류발생시 아래단계 실행
&lt;BR /&gt;오류가 안난다면 하지 않아도 됩니다.
&lt;BR /&gt;
&lt;BR /&gt;ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE KO16KSC5601
&lt;BR /&gt;==&gt; ORA-12714: invalid national character set specified
&lt;BR /&gt;
&lt;BR /&gt;원인) 
&lt;BR /&gt;
&lt;BR /&gt;NATIONAL CHARACTER SET 은 Oracle9i 이후에는 UTF8과 AL16UTF16 만 제공
&lt;BR /&gt;확인)  
&lt;BR /&gt;
&lt;BR /&gt;SELECT VALUE 
&lt;BR /&gt;FROM NLS_DATABASE_PARAMETERS
&lt;BR /&gt;WHERE PARAMETER in (&quot;NLS_NCHAR_CHARACTERSET&quot;,&quot;NLS_CHARACTERSET&quot;)
&lt;BR /&gt;결과) 
&lt;BR /&gt;
&lt;BR /&gt;PARAMETER                                  VALUE
&lt;BR /&gt;---------------------------------- ---------------
&lt;BR /&gt;NLS_CHARACTERSET                     KO16KSC5601
&lt;BR /&gt;NLS_NCHAR_CHARACTERSET         KO16KSC5601
&lt;BR /&gt;
&lt;BR /&gt;조치) 
&lt;BR /&gt;update sys.props$ set value$=&quot;AL16UTF16&quot; where name=&quot;NLS_NCHAR_CHARACTERSET&quot;;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;이후 위의 조치2)를 다시실행하면 아래와 같은 결과를 얻을수 있다..
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;문제해결)
&lt;BR /&gt;
&lt;BR /&gt;CHARACTERSET                      TYPES_USED_IN
&lt;BR /&gt;------------------------------ -------------
&lt;BR /&gt;US7ASCII                                 CHAR
&lt;BR /&gt;US7ASCII                                 CLOB
&lt;BR /&gt;AL16UTF16                                NCHAR
&lt;BR /&gt;AL16UTF16                                NCLOB
&lt;BR /&gt;AL16UTF16                                NVARCHAR2
&lt;BR /&gt;US7ASCII                                 VARCHAR2
&lt;BR /&gt;
&lt;BR /&gt;이후 SQLTools 나 토드접속시 에러가 나지 않고 객체리스트가 정상적으로 나오게 됩니다.
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Oracle 11g, 10g 새로운 기능 정리</title>
      <id>http://www.sqler.com/113223</id>
      <published>2008-07-29T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113223"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113223#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;Oracle Database 11g: DBA와 개발자가 알고 있어야 하는 새로운 기능
&lt;BR /&gt;http://www.oracle.com/technology/global/kr/pub/articles/oracle-database-11g-top-features/index.html
&lt;BR /&gt;
&lt;BR /&gt;Oracle Database 10g: DBA를 위한 20가지 주요 기능
&lt;BR /&gt;http://www.oracle.com/technology/global/kr/pub/articles/10gdba/index.html
&lt;BR /&gt;
&lt;BR /&gt;Oracle Database 10g Release 2의 신기능을 소개합니다.
&lt;BR /&gt;http://www.oracle.com/technology/global/kr/pub/articles/10gdba/index_r2.html
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>[UNIX,LINUX] oracle client 설치하기        </title>
      <id>http://www.sqler.com/113221</id>
      <published>2007-10-25T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113221"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113221#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;보통 DB 서버가 따로 있기에, 웹서버에 클라이언트만 설치하고 
&lt;BR /&gt;웹서버 설정과 jdbs 설정만 하면 되죠.
&lt;BR /&gt;다들 아시리라 생각되는 것 정리(이곳저곳,그리고프로젝트) 하여 올려 드립니다. 
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;[ Oracle Instant Client 설치 -예제는 solaris64]
&lt;BR /&gt;
&lt;BR /&gt;1. 다운로드 후 설치 파일 임의 디렉토리에 FTP 이용하여 올리기
&lt;BR /&gt;http://www.oracle.com/technology/global/kr/tech/oci/instantclient/instantclient.html 
&lt;BR /&gt;(해당 클라이언트를 선택하여, 다운 받으시고 ftp 이용해 서버로 옮기시길...)
&lt;BR /&gt;
&lt;BR /&gt;Instant Client Package - Basic 
&lt;BR /&gt;Instant Client Package - JDBC Supplement
&lt;BR /&gt;Instant Client Package - SQL*Plus
&lt;BR /&gt;Instant Client Package - SDK
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;2. 압축 해제 및 실행폴더로 복사
&lt;BR /&gt;# unzip instantclient-basic-solaris64-10.2.0.3-20070101.zip
&lt;BR /&gt;# unzip instantclient-jdbc-solaris64-10.2.0.3-20070101.zip
&lt;BR /&gt;# unzip instantclient-sdk-solaris64-10.2.0.3-20070101.zip
&lt;BR /&gt;# unzip instantclient-sqlplus-solaris64-10.2.0.3-20070101.zip
&lt;BR /&gt;# cd instantclient_10_2
&lt;BR /&gt;# mkdir /usr/lib/oracle
&lt;BR /&gt;# mv * /usr/lib/oracle/
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;3. profile 및 tnsnames 파일 수정
&lt;BR /&gt;
&lt;BR /&gt;# vi /etc/profile
&lt;BR /&gt;-----------------------------------------------------------------
&lt;BR /&gt;# for Oracle Instant Client
&lt;BR /&gt;if [ -d /usr/lib/oracle ]
&lt;BR /&gt;then
&lt;BR /&gt;  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle;export LD_LIBRARY_PATH
&lt;BR /&gt;  PATH=$PATH:/usr/lib/oracle;export PATH;
&lt;BR /&gt;  NLS_LANG=Korean_Korea.KO16KSC5601;export NLS_LANG;
&lt;BR /&gt;  TNS_ADMIN=/usr/lib/oracle; export TNS_ADMIN;
&lt;BR /&gt;  SQLPATH=/usr/lib/oracle; export SQLPATH;
&lt;BR /&gt;fi
&lt;BR /&gt;-----------------------------------------------------------------
&lt;BR /&gt;
&lt;BR /&gt;# vi /usr/lib/oracle/tnsnames.ora
&lt;BR /&gt;-----------------------------------------------------------------
&lt;BR /&gt;ORA=
&lt;BR /&gt;  (DESCRIPTION =
&lt;BR /&gt;    (ADDRESS_LIST =
&lt;BR /&gt;      (ADDRESS = (PROTOCOL = TCP)(HOST =211.XXX.XXX.XXX)(PORT = 1521))
&lt;BR /&gt;    )
&lt;BR /&gt;    (CONNECT_DATA =
&lt;BR /&gt;      (SERVICE_NAME = ora)
&lt;BR /&gt;    )
&lt;BR /&gt;  )
&lt;BR /&gt;-----------------------------------------------------------------
&lt;BR /&gt;혹시 재접속 에러가 발생하면 ^M 이 문자열에 있을 것입니다. 아마 복사해서 사용할 경우
&lt;BR /&gt;발생할수도 있습니다. vi로 직접 입력하시던지 editplus를 이용해서...
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;4. 로그아웃 후 재접속. 테스트
&lt;BR /&gt;# sqlplus user/passwd@ORA
&lt;BR /&gt;SQL*Plus: Release 10.2.0.2.0 - Production on 화 10월 21 16:47:39 2007
&lt;BR /&gt;Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.
&lt;BR /&gt;
&lt;BR /&gt;다음에 접속됨:
&lt;BR /&gt;Oracle10g Enterprise Edition Release 10.2.0.1.0 - Production
&lt;BR /&gt;With the Partitioning, OLAP and Oracle Data Mining options
&lt;BR /&gt;JServer Release 10.2.0.1.0 - Production
&lt;BR /&gt;SQL&gt; 
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>두개의 Table</title>
      <id>http://www.sqler.com/113220</id>
      <published>2007-10-16T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113220"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113220#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;sql을 이제 막 시작한 사람입니다..
&lt;BR /&gt;궁금한것이 있는데요
&lt;BR /&gt;
&lt;BR /&gt;select *
&lt;BR /&gt;  from table0, table1
&lt;BR /&gt;.
&lt;BR /&gt;.
&lt;BR /&gt;.
&lt;BR /&gt;
&lt;BR /&gt;이런식으로 쿼리를 작성했을데,
&lt;BR /&gt;내부적으로 join과 같은 연산들이 일어나나요..?
&lt;BR /&gt;
&lt;BR /&gt;join절과 위에처럼 다수의 table을 from절에 넣는것과의 차이점을 알고싶습니다..&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>테이블,컬럼 comments (정보관리테이블만들기)</title>
      <id>http://www.sqler.com/113219</id>
      <published>2007-10-11T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113219"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113219#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt; 정보테이블 생성하기 &gt;
&lt;BR /&gt;---------------------------------------------------------------------
&lt;BR /&gt;DROP TABLE TB_INFO;
&lt;BR /&gt;
&lt;BR /&gt;CREATE TABLE TB_INFO (
&lt;BR /&gt;       OWNER                  VARCHAR(15) NOT NULL,
&lt;BR /&gt;       TABLE_NAME             VARCHAR(30) NOT NULL,
&lt;BR /&gt;       TABLE_COMMENTS         VARCHAR(200) ,
&lt;BR /&gt;       COLUMN_NAME            VARCHAR(30) NOT NULL,
&lt;BR /&gt;       COLUMN_COMMENTS        VARCHAR(200) ,
&lt;BR /&gt;       COLUMN_ID              NUMBER,
&lt;BR /&gt;       DATA_TYPE              VARCHAR(20) NOT NULL,       
&lt;BR /&gt;       NULLABLE               CHAR(1) NOT NULL,
&lt;BR /&gt;       TABLE_TYPE             VARCHAR(20) 
&lt;BR /&gt;)
&lt;BR /&gt; ;
&lt;BR /&gt;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.OWNER           IS &quot;OWNER&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.TABLE_NAME      IS &quot;테이블명&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.TABLE_COMMENTS  IS &quot;테이블설명&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.COLUMN_NAME     IS &quot;컬럼명&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.COLUMN_COMMENTS IS &quot;컬럼설명&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.COLUMN_ID       IS &quot;컬럼ID&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.DATA_TYPE       IS &quot;데이터타입&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.NULLABLE        IS &quot;NULL허용여부&quot;;
&lt;BR /&gt;COMMENT ON COLUMN TB_INFO.TABLE_TYPE      IS &quot;테이블형태&quot;;
&lt;BR /&gt;
&lt;BR /&gt;ALTER TABLE TB_INFO
&lt;BR /&gt;       ADD  ( CONSTRAINT PK_INFO PRIMARY KEY (OWNER, TABLE_NAME,COLUMN_NAME)
&lt;BR /&gt; ) ;
&lt;BR /&gt;
&lt;BR /&gt; commit;
&lt;BR /&gt;---------------------------------------------------------------------
&lt;BR /&gt;
&lt;BR /&gt; 
&lt;BR /&gt;
&lt;BR /&gt;&lt;  실제 테이블에 테이블정보 넣기 &gt;
&lt;BR /&gt;
&lt;BR /&gt;---------------------------------------------------------------------
&lt;BR /&gt;
&lt;BR /&gt;DELETE 
&lt;BR /&gt;FROM TB_INFO
&lt;BR /&gt;WHERE OWNER = 
&lt;BR /&gt;             (select distinct(user) from user_tables);  
&lt;BR /&gt;
&lt;BR /&gt;INSERT INTO TB_INFO 
&lt;BR /&gt;	select TB_COM.OWNER,
&lt;BR /&gt;	       TB_COM.TABLE_NAME,
&lt;BR /&gt;	       TB_COM.TCOMMENTS,
&lt;BR /&gt;	       TB_COM.COLUMN_NAME,
&lt;BR /&gt;	       TB_COM.CCOMMENTS,
&lt;BR /&gt;	       TB_COL.COLUMN_ID,
&lt;BR /&gt;	       TB_COL.DATA_TYPE,
&lt;BR /&gt;	       TB_COL.NULLABLE,
&lt;BR /&gt;	       TB_COM.TABLE_TYPE
&lt;BR /&gt;	FROM
&lt;BR /&gt;	    (select user as OWNER,
&lt;BR /&gt;	           a.TABLE_NAME as TABLE_NAME, 
&lt;BR /&gt;	           a.COMMENTS as TCOMMENTS,
&lt;BR /&gt;	           b.COLUMN_NAME as COLUMN_NAME, 
&lt;BR /&gt;	           b.COMMENTS as CCOMMENTS, 
&lt;BR /&gt;	           a.TABLE_TYPE as TABLE_TYPE
&lt;BR /&gt;	    from user_tab_comments a, user_col_comments b
&lt;BR /&gt;	    where 
&lt;BR /&gt;	          a.table_name = b.table_name(+)  ) TB_COM,
&lt;BR /&gt;	    (select table_name, column_name, nullable, column_id,
&lt;BR /&gt;	        (CASE WHEN data_precision is null THEN data_type||&quot;(&quot;||data_length||&quot;)&quot;
&lt;BR /&gt;	              WHEN data_scale = 0 THEN data_type||&quot;(&quot;||data_precision||&quot;)&quot;
&lt;BR /&gt;	              ELSE data_type||&quot;(&quot;||data_precision||&quot;.&quot;||data_scale||&quot;)&quot;
&lt;BR /&gt;	              END)  as data_type
&lt;BR /&gt;	    from user_tab_columns) TB_COL
&lt;BR /&gt;	WHERE TB_COM.TABLE_NAME = TB_COL.TABLE_NAME
&lt;BR /&gt;	      and TB_COM.COLUMN_NAME = TB_COL.COLUMN_NAME;
&lt;BR /&gt;          
&lt;BR /&gt;commit;
&lt;BR /&gt;---------------------------------------------------------------------
&lt;BR /&gt;위 내용으로 작성되어진 예시 캡쳐화면을 첨부합니다.
&lt;BR /&gt;
&lt;BR /&gt;위 예제는 테이블명,테이블스페이스명,롤,시너님을 수정하셔서 
&lt;BR /&gt;실제 프로젝트에서 사용하는 쿼리이기에 환경만 만드시거나 조정만 하시면 충분히 사용하실듯 하네요.
&lt;BR /&gt;
&lt;BR /&gt; ^^ 오랫만에 접속해보는군요.  다시 자주 찾아 뵙도록 하겠습니다.
&lt;BR /&gt;
&lt;BR /&gt;edit512 골뱅이 네이트 닷컴  
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>두 날짜의 차이를 년월일 시분초로 표현하기</title>
      <id>http://www.sqler.com/113218</id>
      <published>2007-08-03T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113218"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113218#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;
&lt;BR /&gt;-- 년월일
&lt;BR /&gt;DECLARE
&lt;BR /&gt;        d1	DATE;
&lt;BR /&gt;        d2	DATE;
&lt;BR /&gt;        years	NUMBER;
&lt;BR /&gt;        months  NUMBER;
&lt;BR /&gt;        days    NUMBER;
&lt;BR /&gt;BEGIN
&lt;BR /&gt;        d1 := to_date( &quot;09-JUL-2007&quot;, &quot;DD-MON-YYYY&quot; );
&lt;BR /&gt;        d2 := to_date( &quot;24-JUL-1995&quot;, &quot;DD-MON-YYYY&quot; );
&lt;BR /&gt;
&lt;BR /&gt;        years := trunc( months_between( d1, d2 ) / 12 );
&lt;BR /&gt;        months := mod( trunc( months_between( d1, d2 ) ), 12 );
&lt;BR /&gt;        days := d1 - add_months(d2,trunc( months_between( d1, d2 ) ));
&lt;BR /&gt;
&lt;BR /&gt;        dbms_output.put_line( &quot;years = &quot; || years);
&lt;BR /&gt;        dbms_output.put_line( &quot;months = &quot; || months);
&lt;BR /&gt;        dbms_output.put_line( &quot;days = &quot; || days);
&lt;BR /&gt;END;
&lt;BR /&gt;/
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;결과&gt;
&lt;BR /&gt;years = 11
&lt;BR /&gt;months = 11
&lt;BR /&gt;days = 15
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;-- 년월일시분초
&lt;BR /&gt;DECLARE
&lt;BR /&gt;        d1	DATE;
&lt;BR /&gt;        d2	DATE;
&lt;BR /&gt;        years	NUMBER;
&lt;BR /&gt;        months  NUMBER;
&lt;BR /&gt;        days    NUMBER;
&lt;BR /&gt;        hours	NUMBER;
&lt;BR /&gt;        minutes NUMBER;
&lt;BR /&gt;        seconds	NUMBER;
&lt;BR /&gt;        
&lt;BR /&gt;BEGIN
&lt;BR /&gt;        d1 := to_date( &quot;09-JUL-2007 23:10:43&quot;, &quot;DD-MON-YYYY HH24:MI:SS&quot; );
&lt;BR /&gt;        d2 := to_date( &quot;24-JUL-1995 10:09:40&quot;, &quot;DD-MON-YYYY HH24:MI:SS&quot; );
&lt;BR /&gt;
&lt;BR /&gt;        years := trunc( months_between( d1, d2 ) / 12 );
&lt;BR /&gt;        months := mod( trunc( months_between( d1, d2 ) ), 12 );
&lt;BR /&gt;        days := trunc(d1 - add_months(d2,trunc( months_between( d1, d2 ) )));
&lt;BR /&gt;        hours := trunc( mod( (d1-d2)*24, 24 ) );
&lt;BR /&gt;        minutes := trunc( mod( (d1-d2)*24*60, 60 ) );
&lt;BR /&gt;        seconds := trunc( mod( (d1-d2)*24*60*60, 60 ) );
&lt;BR /&gt;
&lt;BR /&gt;        dbms_output.put_line( &quot;years = &quot; || years);
&lt;BR /&gt;        dbms_output.put_line( &quot;months = &quot; || months);
&lt;BR /&gt;        dbms_output.put_line( &quot;days = &quot; || days);
&lt;BR /&gt;        dbms_output.put_line( &quot;hours = &quot; || hours);
&lt;BR /&gt;        dbms_output.put_line( &quot;minutes = &quot; || minutes);
&lt;BR /&gt;        dbms_output.put_line( &quot;seconds = &quot; || seconds);
&lt;BR /&gt;        
&lt;BR /&gt;END;
&lt;BR /&gt;/
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;결과&gt;
&lt;BR /&gt;years = 11
&lt;BR /&gt;months = 11
&lt;BR /&gt;days = 15
&lt;BR /&gt;hours = 13
&lt;BR /&gt;minutes = 1
&lt;BR /&gt;seconds = 3
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>오라클을 처음 공부하는데요. 어떤 버전으로 공부를 해야 할지요?</title>
      <id>http://www.sqler.com/113217</id>
      <published>2007-06-26T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113217"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113217#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;안녕하세요.
&lt;BR /&gt;
&lt;BR /&gt;이번에 회사에서 디비를 오라클로 바꾸라는 명령을 받았습니다.
&lt;BR /&gt;
&lt;BR /&gt;저는 ms-sql 7.0 부터 시작해서 지긍믄 ms-sql 2000 이 손에 익은 상태랍니다.
&lt;BR /&gt;
&lt;BR /&gt;이제는 ms-sql 이 아니고 오라클을 공부해놓아야 하는데요.
&lt;BR /&gt;
&lt;BR /&gt;지금 최신으로 나온게  오라클 10g 로 알고 있습니다.
&lt;BR /&gt;
&lt;BR /&gt;공부하려면 오라클 10g 부터 공부해도 무방한지요.
&lt;BR /&gt;
&lt;BR /&gt;또 오라클 9x 버전과 호환(그러니깐. exp.imp 가 모두 원할한지 알고 싶어요.
&lt;BR /&gt;
&lt;BR /&gt;디비를 만들때 10g 로 하겠지만 
&lt;BR /&gt;
&lt;BR /&gt;기존하용하던 어플리케이션이 오라클 9x 버전에 맞춰져 개발이 되어 있다고 하네요.
&lt;BR /&gt;
&lt;BR /&gt;저는 관리자 입장이라서 어디서 부터 접근을 해야 할지 너무 모르겠어요.
&lt;BR /&gt;
&lt;BR /&gt;오라클은 지금 처음 시작하는 거기 때문에.  조언좀 부탁드립니다.
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>[질문] dump 넣기..</title>
      <id>http://www.sqler.com/113216</id>
      <published>2007-04-02T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113216"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113216#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;TEST 라는 기존 데이타베이스를 없애고 다시 TEST.dump를 받아서 넣으려고 합니다.
&lt;BR /&gt;
&lt;BR /&gt;TEST 데이타 베이스 삭제하고 
&lt;BR /&gt;
&lt;BR /&gt;TEST.dump를 넣는 것을 알려주십시오.
&lt;BR /&gt;
&lt;BR /&gt;어떤 계정으로 접속해야 되는 지도요.&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>사용자 정의 그룹함수 샘플(10g)</title>
      <id>http://www.sqler.com/113215</id>
      <published>2007-01-17T09:00:00+09:00</published>
      <updated>1970-01-01T09:00:00+09:00</updated>
	  <link rel="alternate" type="text/html" href="http://www.sqler.com/113215"/>
      <link rel="replies" type="text/html" href="http://www.sqler.com/113215#comment"/>
      <author>
         <name>아카이브관리계정</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;참조사이트 : http://www.supinfo-projects.com/en/2006/group_func_2006_en/
&lt;BR /&gt;
&lt;BR /&gt;그룹함수 만들일이 있어서 찾아보았더니 위의 사이트에러 아래와 같은 샘플을 제공하더군요.
&lt;BR /&gt;혹시 만들일이 생기시면 아래 샘플을 참조해서.. 복사 &amp; 붙이기
&lt;BR /&gt;max2 로 max 함수를 구현한듯 합니다.
&lt;BR /&gt;
&lt;BR /&gt;참조사이트에 가시면 영문이지만..
&lt;BR /&gt;대략 그림으로 설명되어 있어서 이해가 가능할 듯 합니다.
&lt;BR /&gt;즐프하세요~
&lt;BR /&gt;
&lt;BR /&gt;도움되시기를..
&lt;BR /&gt;
&lt;BR /&gt;CREATE OR REPLACE TYPE max2obj AS OBJECT
&lt;BR /&gt;(
&lt;BR /&gt;  max NUMBER,  
&lt;BR /&gt;  secmax NUMBER, 
&lt;BR /&gt;  STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT max2obj) 
&lt;BR /&gt;    RETURN NUMBER,
&lt;BR /&gt;  MEMBER FUNCTION ODCIAggregateIterate(self IN OUT max2obj, 
&lt;BR /&gt;    value IN NUMBER) RETURN NUMBER,
&lt;BR /&gt;  MEMBER FUNCTION ODCIAggregateTerminate(self IN max2obj, 
&lt;BR /&gt;    returnValue OUT NUMBER, flags IN NUMBER) RETURN NUMBER,
&lt;BR /&gt;  MEMBER FUNCTION ODCIAggregateMerge(self IN OUT max2obj, 
&lt;BR /&gt;    ctx2 IN max2obj) RETURN NUMBER
&lt;BR /&gt;);
&lt;BR /&gt;
&lt;BR /&gt;CREATE OR REPLACE TYPE BODY max2obj IS 
&lt;BR /&gt;STATIC FUNCTION ODCIAggregateInitialize (sctx IN OUT max2obj) 
&lt;BR /&gt;RETURN NUMBER IS
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  sctx := max2obj(0, 0);
&lt;BR /&gt;  RETURN ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;MEMBER FUNCTION ODCIAggregateIterate (self IN OUT max2obj, value IN NUMBER) 
&lt;BR /&gt;RETURN NUMBER IS
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  IF value &gt; self.max THEN
&lt;BR /&gt;    self.secmax := self.max;
&lt;BR /&gt;    self.max := value;
&lt;BR /&gt;  ELSIF value &gt; self.secmax THEN
&lt;BR /&gt;    self.secmax := value;
&lt;BR /&gt;  END IF;
&lt;BR /&gt;  RETURN ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;MEMBER FUNCTION ODCIAggregateTerminate(self IN max2obj, returnValue OUT 
&lt;BR /&gt;NUMBER, flags IN NUMBER) RETURN NUMBER IS
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  returnValue := self.secmax;
&lt;BR /&gt;  return ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;MEMBER FUNCTION ODCIAggregateMerge(self IN OUT max2obj, ctx2 IN 
&lt;BR /&gt;max2obj) RETURN NUMBER IS
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  IF ctx2.max &gt; self.max THEN
&lt;BR /&gt;    IF ctx2.secmax &gt; self.max THEN 
&lt;BR /&gt;      self.secmax := ctx2.secmax;
&lt;BR /&gt;    ELSE
&lt;BR /&gt;      self.secmax := self.max;
&lt;BR /&gt;    END IF;
&lt;BR /&gt;    self.max := ctx2.max;
&lt;BR /&gt;  ELSIF ctx2.max &gt; self.secmax THEN
&lt;BR /&gt;    self.secmax := ctx2.max;
&lt;BR /&gt;  END IF;
&lt;BR /&gt;  RETURN ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;END;
&lt;BR /&gt;/
&lt;BR /&gt;
&lt;BR /&gt;CREATE OR REPLACE FUNCTION max2 (input NUMBER) 
&lt;BR /&gt;RETURN NUMBER 
&lt;BR /&gt;PARALLEL_ENABLE 
&lt;BR /&gt;AGGREGATE USING max2obj;
&lt;BR /&gt;/
&lt;BR /&gt;
&lt;BR /&gt;select max2( field1 ) from dual1
&lt;BR /&gt;group by field2;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;제가 직접 작성한 함수
&lt;BR /&gt;
&lt;BR /&gt;/*
&lt;BR /&gt;CREATE OR REPLACE TYPE OM_DATELIST AS OBJECT
&lt;BR /&gt;(
&lt;BR /&gt;  DATELIST VARCHAR2(31),  
&lt;BR /&gt;--  DATELIST2 VARCHAR2(31),  
&lt;BR /&gt;  STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT OM_DATELIST) 
&lt;BR /&gt;    RETURN NUMBER,
&lt;BR /&gt;  MEMBER FUNCTION ODCIAggregateIterate(self IN OUT OM_DATELIST, 
&lt;BR /&gt;    value IN DATE) RETURN NUMBER,
&lt;BR /&gt;  MEMBER FUNCTION ODCIAggregateMerge(self IN OUT OM_DATELIST, 
&lt;BR /&gt;    ctx2 IN OM_DATELIST) RETURN NUMBER,
&lt;BR /&gt;  MEMBER FUNCTION ODCIAggregateTerminate(self IN OM_DATELIST, 
&lt;BR /&gt;    returnValue OUT VARCHAR2, flags IN NUMBER) RETURN NUMBER
&lt;BR /&gt;);
&lt;BR /&gt;/--*/
&lt;BR /&gt;
&lt;BR /&gt;CREATE OR REPLACE TYPE BODY OM_DATELIST IS 
&lt;BR /&gt;
&lt;BR /&gt;STATIC FUNCTION ODCIAggregateInitialize (sctx IN OUT OM_DATELIST) 
&lt;BR /&gt;RETURN NUMBER IS
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  sctx := OM_DATELIST(&quot;0000000000000000000000000000000&quot;); -- 순서대로 값을 리샛 
&lt;BR /&gt;  RETURN ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;MEMBER FUNCTION ODCIAggregateIterate (self IN OUT OM_DATELIST, value IN DATE) 
&lt;BR /&gt;RETURN NUMBER IS
&lt;BR /&gt;	   PDAY NUMBER;
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  -- DATE 에서 날자를 가져온다.
&lt;BR /&gt;  -- SELF 변수에 날자번째의 값을 1로 설정한다. 
&lt;BR /&gt;  SELECT TO_NUMBER(TO_CHAR(value, &quot;DD&quot;))
&lt;BR /&gt;  INTO PDAY
&lt;BR /&gt;  FROM DUAL;
&lt;BR /&gt;  
&lt;BR /&gt;DBMS_OUTPUT.PUT_LINE(PDAY);
&lt;BR /&gt;  
&lt;BR /&gt;  IF(PDAY &lt; 2)THEN
&lt;BR /&gt;  	SELECT &quot;1&quot;||SUBSTR(SELF.DATELIST, 2, 31-1)
&lt;BR /&gt;  	INTO SELF.DATELIST
&lt;BR /&gt;  	FROM DUAL;
&lt;BR /&gt;--  	SELF.DATELIST := &quot;1&quot;+SUBSTR(SELF.DATELIST, 2, 31-1); 
&lt;BR /&gt;  ELSIF(PDAY &gt; 30)THEN
&lt;BR /&gt;  	SELECT SUBSTR(SELF.DATELIST, 1, 31-1)||&quot;1&quot;
&lt;BR /&gt;  	INTO SELF.DATELIST
&lt;BR /&gt;  	FROM DUAL;--/*
&lt;BR /&gt;  ELSE
&lt;BR /&gt;  	SELECT SUBSTR(SELF.DATELIST, 1, PDAY-1)||&quot;1&quot;||SUBSTR(SELF.DATELIST, PDAY+1, 31-PDAY)
&lt;BR /&gt;  	INTO SELF.DATELIST
&lt;BR /&gt;  	FROM DUAL;
&lt;BR /&gt;  	SELF.DATELIST := SELF.DATELIST;--*/
&lt;BR /&gt;  END IF;
&lt;BR /&gt;  RETURN ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;MEMBER FUNCTION ODCIAggregateMerge(self IN OUT OM_DATELIST, ctx2 IN OM_DATELIST) RETURN 
&lt;BR /&gt;NUMBER IS
&lt;BR /&gt;  PDATE VARCHAR(31);
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  -- 병렬 처리시에 완료된 값을 가지고 병합 처리를 한다. 인것 같은데..
&lt;BR /&gt;  -- 두개의 값을 병렬 처리하는 것인가?
&lt;BR /&gt;  -- 사실은 호출이 안되는 군요.. 뭘까.. ㅡ.ㅡ;;
&lt;BR /&gt;  PDATE := &quot;&quot;;
&lt;BR /&gt;  FOR CNT IN 1..31 LOOP
&lt;BR /&gt;  	  DBMS_OUTPUT.PUT_LINE(&quot;TEST&quot;);
&lt;BR /&gt;  END LOOP;
&lt;BR /&gt;  SELF.DATELIST := PDATE;
&lt;BR /&gt;  RETURN ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;MEMBER FUNCTION ODCIAggregateTerminate(self IN OM_DATELIST, returnValue OUT 
&lt;BR /&gt;VARCHAR2, flags IN NUMBER) RETURN NUMBER IS
&lt;BR /&gt;BEGIN
&lt;BR /&gt;  returnValue := self.DATELIST; -- 최종적으로 나오는 값. 
&lt;BR /&gt;  return ODCIConst.Success;
&lt;BR /&gt;END;
&lt;BR /&gt;
&lt;BR /&gt;END;
&lt;BR /&gt;/
&lt;BR /&gt;
&lt;BR /&gt;CREATE OR REPLACE FUNCTION GET_SERIAL_ACTDATE2 (INPUT DATE) 
&lt;BR /&gt;RETURN VARCHAR2
&lt;BR /&gt;PARALLEL_ENABLE 
&lt;BR /&gt;AGGREGATE USING OM_DATELIST;
&lt;BR /&gt;/
&lt;BR /&gt;
&lt;BR /&gt;SELECT HOSPITAL_ID, MAX(ACTDATE)
&lt;BR /&gt;, GET_SERIAL_ACTDATE2(ACTDATE)
&lt;BR /&gt;--, LENGTH(GET_SERIAL_ACTDATE2(ACTDATE))
&lt;BR /&gt;, COUNT(*)
&lt;BR /&gt;--SELECT HOSPITAL_ID, ACTDATE
&lt;BR /&gt;FROM OM_CLINIC
&lt;BR /&gt;WHERE HOSPITAL_ID = &quot;test9&quot; AND CHART_ID = 3 
&lt;BR /&gt;GROUP BY HOSPITAL_ID 
&lt;BR /&gt;;
&lt;BR /&gt;
&lt;BR /&gt;&lt;/div&gt;</content>
                  
   </entry>
</feed> 

