forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
242 lines
25 KiB
HTML
242 lines
25 KiB
HTML
<a name="EN-US_TOPIC_0000001233761905"></a><a name="EN-US_TOPIC_0000001233761905"></a>
|
|
|
|
<h1 class="topictitle1">Loop Statements</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233761905__sadda8e7efbf34ee1a10c5dd3af718fce"><h4 class="sectiontitle">Simple LOOP Statements</h4><p id="EN-US_TOPIC_0000001233761905__a3525de9d7f3c405c97951038f540e9ec">The syntax diagram is as follows.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001233761905__ff90b2ab5d230453fb6d2dae68ecb7fcf"><span class="figcap"><b>Figure 1 </b>loop::=</span><br><span><img id="EN-US_TOPIC_0000001233761905__ie9f690aae03c41d3b0e30f57155475a4" src="figure/en-us_image_0000001188482368.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001233761905__a9667ae0406774c9e9731900248472cb9">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233761905__s905cb6c481234f19b9f86bdfb3d39095"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_loop</span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nb">integer</span><span class="p">,</span><span class="w"> </span><span class="k">count</span><span class="w"> </span><span class="k">out</span><span class="w"> </span><span class="nb">integer</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="k">AS</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">BEGIN</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">count</span><span class="p">:</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">LOOP</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">count</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">THEN</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="n">info</span><span class="w"> </span><span class="s1">'count is %. '</span><span class="p">,</span><span class="w"> </span><span class="k">count</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">EXIT</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">ELSE</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">count</span><span class="p">:</span><span class="o">=</span><span class="k">count</span><span class="o">+</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="k">IF</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="n">LOOP</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">END</span><span class="p">;</span>
|
|
<span class="o">/</span>
|
|
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">proc_loop</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<div class="notice" id="EN-US_TOPIC_0000001233761905__n35602bad505b42b3ba77d07f1424224f"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233761905__a08b1e2b209ad400995f8002fbfdde25b">The loop must be exploited together with <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b40186745161157">EXIT</strong>; otherwise, a dead loop occurs.</p>
|
|
</div></div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233761905__se2621bc8d08f4f2bbf180e7ebffac4e9"><h4 class="sectiontitle">WHILE-LOOP Statements</h4><p id="EN-US_TOPIC_0000001233761905__ac08a1fc0fbde42ed98778d3728316975">The syntax diagram is as follows.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001233761905__f99d16036f9cf4e3aa67c9454ec2dbef7"><span class="figcap"><b>Figure 2 </b>while_loop::=</span><br><span><img id="EN-US_TOPIC_0000001233761905__iaaac91f4ad2242f89c927f8ce08491fe" src="figure/en-us_image_0000001188642280.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001233761905__a2c3829e83df74e73b5d819133be2ddf6">If the conditional expression is true, a series of statements in the WHILE statement are repeatedly executed and the condition is decided each time the loop body is executed.</p>
|
|
<p id="EN-US_TOPIC_0000001233761905__a162af3fde094429cb371b82304409833">Examples</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233761905__s9027d21fa3ef40aaab074757c3c2f56b"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span>
|
|
<span class="normal">18</span>
|
|
<span class="normal">19</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">integertable</span><span class="p">(</span><span class="n">c1</span><span class="w"> </span><span class="nb">integer</span><span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">hash</span><span class="p">(</span><span class="n">c1</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_while_loop</span><span class="p">(</span><span class="n">maxval</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nb">integer</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="k">AS</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">DECLARE</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="nb">int</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">BEGIN</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">WHILE</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">maxval</span><span class="w"> </span><span class="n">LOOP</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">integertable</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="n">i</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">i</span><span class="p">:</span><span class="o">=</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="n">LOOP</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">END</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="o">/</span>
|
|
|
|
<span class="c1">-- Invoke a function:</span>
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">proc_while_loop</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
|
|
|
|
<span class="c1">-- Delete the stored procedure and table:</span>
|
|
<span class="k">DROP</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_while_loop</span><span class="p">;</span>
|
|
<span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">integertable</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233761905__s826ee9ba70614288bfc61be39d9a8f20"><h4 class="sectiontitle">FOR_LOOP (<em id="EN-US_TOPIC_0000001233761905__i842352697193146">Integer variable</em>) <em id="EN-US_TOPIC_0000001233761905__i842352697193148">Statement</em></h4><p id="EN-US_TOPIC_0000001233761905__af4818f82942c485596c35e8718f29280">The syntax diagram is as follows.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001233761905__f2607d9f7f5af426095b25078b1e22ce4"><span class="figcap"><b>Figure 3 </b>for_loop::=</span><br><span><img id="EN-US_TOPIC_0000001233761905__ib07b8ad25fc842249fb56b0fb63abf1b" src="figure/en-us_image_0000001233761955.png"></span></div>
|
|
<div class="note" id="EN-US_TOPIC_0000001233761905__ncc392f0005ce42c49c9350e59b6c2236"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001233761905__u5e0cb239dfb64b0a9d242f0cb5794069"><li id="EN-US_TOPIC_0000001233761905__l20581fcac93946538ebd43af48d9fd5b">The variable <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b17429350161332">name</strong> is automatically defined as the <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b22646428161332">integer</strong> type and exists only in this loop. The variable name falls between lower_bound and upper_bound.</li><li id="EN-US_TOPIC_0000001233761905__l1f24666b085049f6a11d4dcd528e746a">When the keyword <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b11703434161328">REVERSE</strong> is used, the lower bound must be greater than or equal to the upper bound; otherwise, the loop body is not executed.</li></ul>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001233761905__a8cb342afa389423ab1f10a64789d5cdb">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233761905__sb07b19aafa5b4e0dbecc1e20aa20ffaf"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><span class="c1">-- Loop from 0 to 5:</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_for_loop</span><span class="p">()</span>
|
|
<span class="k">AS</span>
|
|
<span class="w"> </span><span class="k">BEGIN</span>
|
|
<span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="n">I</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="mi">0</span><span class="p">..</span><span class="mi">5</span><span class="w"> </span><span class="n">LOOP</span>
|
|
<span class="w"> </span><span class="n">DBMS_OUTPUT</span><span class="p">.</span><span class="n">PUT_LINE</span><span class="p">(</span><span class="s1">'It is '</span><span class="o">||</span><span class="n">to_char</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="s1">' time;'</span><span class="p">)</span><span class="w"> </span><span class="p">;</span>
|
|
<span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="n">LOOP</span><span class="p">;</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
<span class="o">/</span>
|
|
|
|
<span class="c1">-- Invoke a function:</span>
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">proc_for_loop</span><span class="p">();</span>
|
|
|
|
<span class="c1">-- Delete the stored procedure:</span>
|
|
<span class="k">DROP</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_for_loop</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233761905__saf277269cf9c4acd9bd2851fa3ea73d1"><h4 class="sectiontitle">FOR_LOOP Query Statements</h4><p id="EN-US_TOPIC_0000001233761905__a4e3486992b454015bf3e2c968b645070">The syntax diagram is as follows.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001233761905__fed06857f0ee546a69c94aa80f535e195"><span class="figcap"><b>Figure 4 </b>for_loop_query::=</span><br><span><img id="EN-US_TOPIC_0000001233761905__i7591996197cc4acfb65c135fafd3ec59" src="figure/en-us_image_0000001188642282.png"></span></div>
|
|
<div class="note" id="EN-US_TOPIC_0000001233761905__na244e0829ba34a7888de9828f9b730aa"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233761905__a65180e89ebe64fd698df191ca96a45a1">The variable <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b1427648161424">target</strong> is automatically defined, its type is the same as that in the <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b12848834161424">query</strong> result, and it is valid only in this loop. The target value is the query result.</p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001233761905__a8e87013cd384493b8e665e70a07a821f">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233761905__s270ecc654f01453eb3da9fc2e031b18a"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><span class="c1">-- Display the query result from the loop:</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_for_loop_query</span><span class="p">()</span>
|
|
<span class="k">AS</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
|
|
<span class="k">BEGIN</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">spcname</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_tablespace</span><span class="w"> </span><span class="n">LOOP</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">dbms_output</span><span class="p">.</span><span class="n">put_line</span><span class="p">(</span><span class="n">record</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="n">LOOP</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="k">END</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="o">/</span>
|
|
|
|
<span class="c1">-- Invoke a function.</span>
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">proc_for_loop_query</span><span class="p">();</span>
|
|
|
|
<span class="c1">-- Delete the stored procedure.</span>
|
|
<span class="k">DROP</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_for_loop_query</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233761905__s83d2f597843a4fd699d84b060519603a"><h4 class="sectiontitle">FORALL Batch Query Statements</h4><p id="EN-US_TOPIC_0000001233761905__a9c89999e3bae40e7af0a4bc86770edaa">The syntax diagram is as follows.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001233761905__f337ba40062a44c24b7b9891eb8bcb32a"><span class="figcap"><b>Figure 5 </b>forall::=</span><br><span><img id="EN-US_TOPIC_0000001233761905__i4806247bad034e55840501807a83f99b" src="figure/en-us_image_0000001233883445.png"></span></div>
|
|
<div class="note" id="EN-US_TOPIC_0000001233761905__nd6ba56c376014b6485316e325c17b260"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233761905__a65ed88f4a061443db28364f98ef3ea93">The variable <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b66353102161517">index</strong> is automatically defined as the <strong id="EN-US_TOPIC_0000001233761905__en-us_topic_0027042995_b60307010161517">integer</strong> type and exists only in this loop. The index value falls between low_bound and upper_bound.</p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001233761905__a2af7f4335cdf40d8b53ab8edd19b962a">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233761905__s6147d40f73c14ff0825845b3b064a97e"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span>
|
|
<span class="normal">18</span>
|
|
<span class="normal">19</span>
|
|
<span class="normal">20</span>
|
|
<span class="normal">21</span>
|
|
<span class="normal">22</span>
|
|
<span class="normal">23</span>
|
|
<span class="normal">24</span>
|
|
<span class="normal">25</span>
|
|
<span class="normal">26</span>
|
|
<span class="normal">27</span>
|
|
<span class="normal">28</span>
|
|
<span class="normal">29</span>
|
|
<span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">hdfs_t1</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">title</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">6</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">did</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">data_peroid</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">kind</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="nb">interval</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="nb">DATE</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">isModified</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
|
|
<span class="p">)</span><span class="w"> </span>
|
|
<span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">hash</span><span class="p">(</span><span class="n">did</span><span class="p">);</span>
|
|
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">hdfs_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="s1">'Donald'</span><span class="p">,</span><span class="w"> </span><span class="s1">'OConnell'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DOCONNEL'</span><span class="p">,</span><span class="w"> </span><span class="s1">'650.507.9833'</span><span class="p">,</span><span class="w"> </span><span class="n">to_date</span><span class="p">(</span><span class="s1">'21-06-1999'</span><span class="p">,</span><span class="w"> </span><span class="s1">'dd-mm-yyyy'</span><span class="p">),</span><span class="w"> </span><span class="s1">'SH_CLERK'</span><span class="w"> </span><span class="p">);</span>
|
|
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_forall</span><span class="p">()</span>
|
|
<span class="k">AS</span><span class="w"> </span>
|
|
<span class="k">BEGIN</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">FORALL</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="mi">100</span><span class="p">..</span><span class="mi">120</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">insert</span><span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="n">hdfs_t1</span><span class="p">(</span><span class="n">title</span><span class="p">)</span><span class="w"> </span><span class="k">values</span><span class="p">(</span><span class="n">i</span><span class="p">);</span>
|
|
<span class="k">END</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="o">/</span>
|
|
|
|
<span class="c1">-- Invoke a function:</span>
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">proc_forall</span><span class="p">();</span>
|
|
|
|
<span class="c1">-- Query the invocation result of the stored procedure:</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">hdfs_t1</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">title</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">120</span><span class="p">;</span>
|
|
|
|
<span class="c1">-- Delete the stored procedure and table:</span>
|
|
<span class="k">DROP</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_forall</span><span class="p">;</span>
|
|
<span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">hdfs_t1</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0532.html">Control Statements</a></div>
|
|
</div>
|
|
</div>
|
|
|