doc-exports/docs/dws/dev/dws_04_0526.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
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>
2024-05-16 07:24:04 +00:00

119 lines
9.2 KiB
HTML

<a name="EN-US_TOPIC_0000001188163580"></a><a name="EN-US_TOPIC_0000001188163580"></a>
<h1 class="topictitle1">Call Statement</h1>
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001188163580__sbcdcd24ff68041bfa5f94e44befb3a58"><h4 class="sectiontitle">Syntax</h4><p id="EN-US_TOPIC_0000001188163580__a6a91b3a2e1c44f1aac62061fc98117f8"><a href="#EN-US_TOPIC_0000001188163580__f299fb9795429468ea45fe86a41dbca6e">Figure 1</a> shows the syntax diagram for calling a clause.</p>
<div class="fignone" id="EN-US_TOPIC_0000001188163580__f299fb9795429468ea45fe86a41dbca6e"><a name="EN-US_TOPIC_0000001188163580__f299fb9795429468ea45fe86a41dbca6e"></a><a name="f299fb9795429468ea45fe86a41dbca6e"></a><span class="figcap"><b>Figure 1 </b>call_clause::=</span><br><span><img id="EN-US_TOPIC_0000001188163580__icbcfb303148a424bb96a82b2ac42b673" src="figure/en-us_image_0000001233883409.png"></span></div>
<p id="EN-US_TOPIC_0000001188163580__a13ab19fe6525436db4a5bc3fc35527ba">The above syntax diagram is explained as follows:</p>
<ul id="EN-US_TOPIC_0000001188163580__u9e21cd14da5645ebaa77c22872f68a20"><li id="EN-US_TOPIC_0000001188163580__l293a3ddd6e2844f295345268ee1b8710"><strong id="EN-US_TOPIC_0000001188163580__en-us_topic_0058965709_en-us_topic_0027042943_b56592003154924">procedure_name</strong> specifies the name of a stored procedure.</li><li id="EN-US_TOPIC_0000001188163580__l1d1d9f830a3b4f93b3bf179c112e092e"><strong id="EN-US_TOPIC_0000001188163580__en-us_topic_0027042943_b20549512154924">parameter</strong> specifies the parameters for the stored procedure. You can set no parameter or multiple parameters.</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001188163580__s3e35848e32c043d38d6c68dcd10f704c"><h4 class="sectiontitle">Examples</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188163580__s2b5fc2839e354bc395af945d3c84e693"><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>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><span class="c1">-- Create the stored procedure proc_staffs:</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_staffs</span>
<span class="p">(</span>
<span class="n">section</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="n">salary_sum</span><span class="w"> </span><span class="k">out</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
<span class="n">staffs_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="k">IS</span>
<span class="k">BEGIN</span>
<span class="k">SELECT</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">salary</span><span class="p">),</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">salary_sum</span><span class="p">,</span><span class="w"> </span><span class="n">staffs_count</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">staffs</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">section_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">section</span><span class="p">;</span>
<span class="k">END</span><span class="p">;</span>
<span class="o">/</span>
<span class="c1">-- Create the stored procedure proc_return:</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_return</span>
<span class="k">AS</span>
<span class="n">v_num</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="n">v_sum</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">;</span>
<span class="k">BEGIN</span>
<span class="n">proc_staffs</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="n">v_sum</span><span class="p">,</span><span class="w"> </span><span class="n">v_num</span><span class="p">);</span><span class="w"> </span><span class="c1">--Invoke a statement</span>
<span class="n">dbms_output</span><span class="p">.</span><span class="n">put_line</span><span class="p">(</span><span class="n">v_sum</span><span class="o">||</span><span class="s1">'#'</span><span class="o">||</span><span class="n">v_num</span><span class="p">);</span>
<span class="k">RETURN</span><span class="p">;</span><span class="w"> </span><span class="c1">--Return a statement</span>
<span class="k">END</span><span class="p">;</span>
<span class="o">/</span>
<span class="c1">-- Invoke a stored procedure proc_return:</span>
<span class="k">CALL</span><span class="w"> </span><span class="n">proc_return</span><span class="p">();</span>
<span class="c1">-- Delete a 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_staffs</span><span class="p">;</span>
<span class="k">DROP</span><span class="w"> </span><span class="k">PROCEDURE</span><span class="w"> </span><span class="n">proc_return</span><span class="p">;</span>
<span class="c1">--Create the function func_return.</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">FUNCTION</span><span class="w"> </span><span class="n">func_return</span><span class="w"> </span><span class="k">returns</span><span class="w"> </span><span class="n">void</span>
<span class="k">language</span><span class="w"> </span><span class="n">plpgsql</span>
<span class="k">AS</span><span class="w"> </span><span class="err">$$</span>
<span class="k">DECLARE</span>
<span class="n">v_num</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="k">BEGIN</span>
<span class="n">dbms_output</span><span class="p">.</span><span class="n">put_line</span><span class="p">(</span><span class="n">v_num</span><span class="p">);</span>
<span class="k">RETURN</span><span class="p">;</span><span class="w"> </span><span class="c1">--Return a statement</span>
<span class="k">END</span><span class="w"> </span><span class="err">$$</span><span class="p">;</span>
<span class="c1">-- Invoke the function func_return.</span>
<span class="k">CALL</span><span class="w"> </span><span class="n">func_return</span><span class="p">();</span>
<span class="mi">1</span>
<span class="c1">-- Delete the function:</span>
<span class="k">DROP</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_return</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_0523.html">Basic Statements</a></div>
</div>
</div>