forked from docs/doc-exports
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
154 lines
19 KiB
HTML
154 lines
19 KiB
HTML
<a name="EN-US_TOPIC_0000001145710865"></a><a name="EN-US_TOPIC_0000001145710865"></a>
|
|
|
|
<h1 class="topictitle1">CALL</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001145710865__s15629145a18c4b82a05c951b4c5fc2e2"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001145710865__a47f998f934404403b326c881e35849ef"><strong id="EN-US_TOPIC_0000001145710865__b1213283943415">CALL</strong> calls defined functions or stored procedures.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001145710865__s4a3d6f9d884744ec9cb831d8c8e3bc69"><h4 class="sectiontitle">Precautions</h4><p id="EN-US_TOPIC_0000001145710865__a9d3af8efe6d2401daf1b30aa11bbcdd4">None</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001145710865__s7fc340df289c4d5a8efddb577cacc516"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__s707f1a31e00f4272b6d11922b0ac13c3"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CALL</span><span class="w"> </span><span class="p">[</span><span class="k">schema</span><span class="p">.]</span><span class="w"> </span><span class="err">{</span><span class="n">func_name</span><span class="o">|</span><span class="w"> </span><span class="n">procedure_name</span><span class="err">}</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">param_expr</span><span class="w"> </span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001145710865__s5adb040eb0df43148659dda025899832"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001145710865__uf35c83843d4c44cb9e897f68818ad8b1"><li id="EN-US_TOPIC_0000001145710865__l1a213bb9ce9c45cebd82ad047c23f0c2"><strong id="EN-US_TOPIC_0000001145710865__aa65ea12db6954472819fe339004e0d93">schema</strong><p id="EN-US_TOPIC_0000001145710865__a14a090ab4c8d4f65ace8b3db8fe82550">Specifies the name of the schema where a function or stored procedure is located.</p>
|
|
</li><li id="EN-US_TOPIC_0000001145710865__lb069d96d35b24432a5555e4fbc9c75ae"><strong id="EN-US_TOPIC_0000001145710865__a9597dab42edc42669a8aa1733602ca6b">func_name</strong><p id="EN-US_TOPIC_0000001145710865__ab6566303aa384c3c9030052b4e26fee8">Specifies the name of the function or stored procedure to be called.</p>
|
|
<p id="EN-US_TOPIC_0000001145710865__ac2739921be29463daafe448d82ac05c7">Value range: an existing function name</p>
|
|
</li><li id="EN-US_TOPIC_0000001145710865__lf70b1569d54a4cf4a02dca2188b756ab"><strong id="EN-US_TOPIC_0000001145710865__afdf14a40bc774b23981ebc7a4414ea6b">param_expr</strong><p id="EN-US_TOPIC_0000001145710865__ad0624f22bf0c4c83b9dbd4578ddf9524">Specifies a list of parameters in the function. Use <strong id="EN-US_TOPIC_0000001145710865__b84235270691227">:=</strong> or <strong id="EN-US_TOPIC_0000001145710865__b84235270691231">=></strong> to separate a parameter name and its value. This method allows parameters to be placed in any order. If only parameter values are in the list, the value order must be the same as that defined in the function or stored procedure.</p>
|
|
<p id="EN-US_TOPIC_0000001145710865__aa8abe7f2e5ab4532b7b3c99e83289a25">Value range: names of existing function or stored procedure parameters</p>
|
|
<div class="note" id="EN-US_TOPIC_0000001145710865__n7a143b54bbc14f4f9a2e4442325f3cd6"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001145710865__aa12355c41d3b4364a5c1c1c706701058">The parameters include input parameters (whose name and type are separated by <strong id="EN-US_TOPIC_0000001145710865__b5659374004135">IN</strong>) and output parameters (whose name and type are separated by <strong id="EN-US_TOPIC_0000001145710865__b3381410924135">OUT</strong>). When you run the <strong id="EN-US_TOPIC_0000001145710865__b13122739904135">CALL</strong> statement to call a function or stored procedure, the parameter list must contain an output parameter for non-overloaded functions. You can set the output parameter to a variable or any constant. For details, see <a href="#EN-US_TOPIC_0000001145710865__s573ee29c39fc4f11b27b21a603ec6b59">Examples</a>. For an overloaded package function, the parameter list can have no output parameter, but the function may not be found. If an output parameter is contained, it must be a constant.</p>
|
|
</div></div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001145710865__s573ee29c39fc4f11b27b21a603ec6b59"><a name="EN-US_TOPIC_0000001145710865__s573ee29c39fc4f11b27b21a603ec6b59"></a><a name="s573ee29c39fc4f11b27b21a603ec6b59"></a><h4 class="sectiontitle">Examples</h4><div class="p" id="EN-US_TOPIC_0000001145710865__p4726150111220">Create the <strong id="EN-US_TOPIC_0000001145710865__b3104112732119">func_add_sql</strong> function to compute the sum of two integers and return the result.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen132561830145816"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_add_sql</span><span class="p">(</span><span class="n">num1</span><span class="w"> </span><span class="nb">integer</span><span class="p">,</span><span class="w"> </span><span class="n">num2</span><span class="w"> </span><span class="nb">integer</span><span class="p">)</span><span class="w"> </span><span class="k">RETURN</span><span class="w"> </span><span class="nb">integer</span><span class="w"></span>
|
|
<span class="k">AS</span><span class="w"></span>
|
|
<span class="k">BEGIN</span><span class="w"></span>
|
|
<span class="k">RETURN</span><span class="w"> </span><span class="n">num1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">num2</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="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p207265507122">Transfer based on parameter values.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen146327559584"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CALL</span><span class="w"> </span><span class="n">func_add_sql</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p1572613501120">Transfer based on the naming flags.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen4516736108"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CALL</span><span class="w"> </span><span class="n">func_add_sql</span><span class="p">(</span><span class="n">num1</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="n">num2</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">3</span><span class="p">);</span><span class="w"></span>
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">func_add_sql</span><span class="p">(</span><span class="n">num2</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">num1</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p187267503123">Delete the function.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen196718341623"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_add_sql</span><span class="p">;</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p177261350201220">Create a function with output parameters.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen778925819216"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_increment_sql</span><span class="p">(</span><span class="n">num1</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="n">num2</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="n">res</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">RETURN</span><span class="w"> </span><span class="nb">integer</span><span class="w"></span>
|
|
<span class="k">AS</span><span class="w"></span>
|
|
<span class="k">BEGIN</span><span class="w"></span>
|
|
<span class="n">res</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="n">num1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">num2</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="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p57264505125">Set output parameters to constants.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen5295204318314"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CALL</span><span class="w"> </span><span class="n">func_increment_sql</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p15726185010129">Set output parameters to variables.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen36091391046"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">DECLARE</span><span class="w"></span>
|
|
<span class="n">res</span><span class="w"> </span><span class="nb">int</span><span class="p">;</span><span class="w"></span>
|
|
<span class="k">BEGIN</span><span class="w"></span>
|
|
<span class="n">func_increment_sql</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">res</span><span class="p">);</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">res</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="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p772612507127">Create overloaded functions.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen164615556612"><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></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">package_func_overload</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">col2</span><span class="w"> </span><span class="k">out</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="n">package</span><span class="w"></span>
|
|
<span class="k">as</span><span class="w"></span>
|
|
<span class="k">declare</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">col_type</span><span class="w"> </span><span class="nb">text</span><span class="p">;</span><span class="w"></span>
|
|
<span class="k">begin</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">122</span><span class="p">;</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="s1">'two out parameters '</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">col2</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="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen5559459869"><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></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">package_func_overload</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">col2</span><span class="w"> </span><span class="k">out</span><span class="w"> </span><span class="nb">varchar</span><span class="p">)</span><span class="w"> </span><span class="n">package</span><span class="w"></span>
|
|
<span class="k">as</span><span class="w"></span>
|
|
<span class="k">declare</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">col_type</span><span class="w"> </span><span class="nb">text</span><span class="p">;</span><span class="w"></span>
|
|
<span class="k">begin</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">col2</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="s1">'122'</span><span class="p">;</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="s1">'two varchar parameters '</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">col2</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="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p1727650171219">Call a function.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen851273013712"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">call</span><span class="w"> </span><span class="n">package_func_overload</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'test'</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="k">call</span><span class="w"> </span><span class="n">package_func_overload</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"> </span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001145710865__p4727195061210">Delete a function.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145710865__screen114271351083"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_increment_sql</span><span class="p">;</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0227.html">DML Syntax</a></div>
|
|
</div>
|
|
</div>
|
|
|