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>
211 lines
24 KiB
HTML
211 lines
24 KiB
HTML
<a name="EN-US_TOPIC_0000001460562992"></a><a name="EN-US_TOPIC_0000001460562992"></a>
|
|
|
|
<h1 class="topictitle1">Basic Statements of GaussDB(DWS) Stored Procedures</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001460562992__section17153123292714"><h4 class="sectiontitle">Variable Definition Statement</h4><p id="EN-US_TOPIC_0000001460562992__p1954473313272">This section describes the declaration of variables in the PL/SQL and the scope of this variable in codes.</p>
|
|
<p id="EN-US_TOPIC_0000001460562992__p15994171612819"><strong id="EN-US_TOPIC_0000001460562992__b114785191244">Variable declaration</strong></p>
|
|
<p id="EN-US_TOPIC_0000001460562992__a32de3764a1c04f93945827d900a79268">For details about the variable declaration syntax, see <a href="#EN-US_TOPIC_0000001460562992__f3705e8285f024bfe8ab480866c9fb57a">Figure 1</a>.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001460562992__f3705e8285f024bfe8ab480866c9fb57a"><a name="EN-US_TOPIC_0000001460562992__f3705e8285f024bfe8ab480866c9fb57a"></a><a name="f3705e8285f024bfe8ab480866c9fb57a"></a><span class="figcap"><b>Figure 1 </b>declare_variable::=</span><br><span><img id="EN-US_TOPIC_0000001460562992__i553b3276e2954d24a3ce6beca3629ae0" src="figure/en-us_image_0000002076208133.png" height="77.805" width="375.06" title="Click to enlarge" class="imgResize"></span></div>
|
|
<p id="EN-US_TOPIC_0000001460562992__ae84948cfc96c4abd97e9a16c03fc31d3">The above syntax diagram is explained as follows:</p>
|
|
<ul id="EN-US_TOPIC_0000001460562992__ufacaf3fe4514411e90508e200cf51505"><li id="EN-US_TOPIC_0000001460562992__l6947add8536d45aa8dbae54d8a65bc0a"><strong id="EN-US_TOPIC_0000001460562992__b62973910593140">variable_name</strong> indicates the name of a variable.</li><li id="EN-US_TOPIC_0000001460562992__l2898e39e7e05422a9638d1b476243a70"><strong id="EN-US_TOPIC_0000001460562992__b17537675193140">type</strong> indicates the type of a variable.</li><li id="EN-US_TOPIC_0000001460562992__lce7016558f084a968a2ba9c678533d8f"><strong id="EN-US_TOPIC_0000001460562992__b89396417793140">value</strong> indicates the initial value of the variable. (If the initial value is not given, <strong id="EN-US_TOPIC_0000001460562992__b10662171112253">NULL</strong> is taken as the initial value.) <strong id="EN-US_TOPIC_0000001460562992__b102047986093140">value</strong> can also be an expression.</li></ul>
|
|
<p id="EN-US_TOPIC_0000001460562992__a47ed789d45a8439eba3954b8006ff565"><strong id="EN-US_TOPIC_0000001460562992__b12341171962515">Examples</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460562992__s3972a9231e3c4418966c6503213d11c7"><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">DECLARE</span>
|
|
<span class="w"> </span><span class="n">emp_id</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">7788</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Define a variable and assign a value to it.</span>
|
|
<span class="k">BEGIN</span>
|
|
<span class="w"> </span><span class="n">emp_id</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="o">*</span><span class="mi">7784</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Assign a value to the variable.</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
<span class="o">/</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001460562992__p56696256452">In addition to the declaration of basic variable types, <strong id="EN-US_TOPIC_0000001460562992__b84119937393140">%TYPE</strong> and <strong id="EN-US_TOPIC_0000001460562992__b178090653093140">%ROWTYPE</strong> can be used to declare variables related to table columns or table structures.</p>
|
|
<p id="EN-US_TOPIC_0000001460562992__p183515204297"><strong id="EN-US_TOPIC_0000001460562992__b17303172912291">%TYPE attribute</strong></p>
|
|
<p id="EN-US_TOPIC_0000001460562992__p166641228154919"><strong id="EN-US_TOPIC_0000001460562992__b13836127268">%TYPE</strong> declares a variable to be of the same data type as a previously declared variable (for example, a column in a table). For example, if you want to define a <strong id="EN-US_TOPIC_0000001460562992__b119491392614">my_name</strong> variable that has the same data type as the <strong id="EN-US_TOPIC_0000001460562992__b2951013102618">firstname</strong> column in the <strong id="EN-US_TOPIC_0000001460562992__b199591318260">employee</strong> table, you can define the variable as follows:</p>
|
|
<pre class="screen" id="EN-US_TOPIC_0000001460562992__screen3617174611418">my_name employee.firstname%TYPE</pre>
|
|
<p id="EN-US_TOPIC_0000001460562992__p931205175618">In this way, you can declare <strong id="EN-US_TOPIC_0000001460562992__b55761320192617">my_name</strong> even if you do not know the data type of <strong id="EN-US_TOPIC_0000001460562992__b9576220172617">firstname</strong> in <strong id="EN-US_TOPIC_0000001460562992__b657642052612">employee</strong>, and the data type of <strong id="EN-US_TOPIC_0000001460562992__b9701192992619">my_name</strong> can be automatically updated when the data type of <strong id="EN-US_TOPIC_0000001460562992__b9701829102619">firstname</strong> changes.</p>
|
|
<p id="EN-US_TOPIC_0000001460562992__p51569383295"><strong id="EN-US_TOPIC_0000001460562992__b14702194619298">%ROWTYPE attribute</strong></p>
|
|
<p id="EN-US_TOPIC_0000001460562992__p1777215718594"><strong id="EN-US_TOPIC_0000001460562992__b294263212287">%ROWTYPE</strong> declares data types of a set of data. It stores a row of table data or results fetched from a cursor. For example, if you want to define a set of data with the same column names and column data types as the <strong id="EN-US_TOPIC_0000001460562992__b44937331293140">employee</strong> table, you can define the data as follows:</p>
|
|
<pre class="screen" id="EN-US_TOPIC_0000001460562992__screen15104128204217">my_employee employee%ROWTYPE</pre>
|
|
<div class="notice" id="EN-US_TOPIC_0000001460562992__n24f4c41ebd164e7a983b708e1e5fb2e0"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001460562992__a677c52d3b44c4c49a5f41edd9993caa9">If multiple CNs are used, the <strong id="EN-US_TOPIC_0000001460562992__b685311923011">%ROWTYPE</strong> and <strong id="EN-US_TOPIC_0000001460562992__b172151012163011">%TYPE</strong> attributes of temporary tables cannot be declared in a stored procedure, because a temporary table is valid only in the current session and is invisible to other CNs in the compilation phase. In this case, a message is displayed indicating that the temporary table does not exist.</p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001460562992__p1525716518307"><strong id="EN-US_TOPIC_0000001460562992__b1491331014305">Variable scope</strong></p>
|
|
<p id="EN-US_TOPIC_0000001460562992__a5b2baf69095e4ec585dec0d036df830a">The scope of a variable indicates the accessibility and availability of a variable in code block. In other words, a variable takes effect only within its scope.</p>
|
|
<ul id="EN-US_TOPIC_0000001460562992__u87369c94e5fa40d3a5a61cc325e82b69"><li id="EN-US_TOPIC_0000001460562992__lef3a8f1114d44008af46a9831bb53673">To define a function scope, a variable must declare and create a <strong id="EN-US_TOPIC_0000001460562992__b48039163493140">BEGIN-END</strong> block in the declaration section. The necessity of such declaration is also determined by block structure, which requires that a variable has different scopes and lifetime during a process.</li><li id="EN-US_TOPIC_0000001460562992__le6e5ddfa147b4932b6ce4b845a4a69a3">A variable can be defined multiple times in different scopes, and inner definition can cover outer one.</li><li id="EN-US_TOPIC_0000001460562992__lc05cb40ad4d4484f82fd6415518ddc31">A variable defined in an outer block can also be used in a nested block. However, the outer block cannot access variables in the nested block.</li></ul>
|
|
<p id="EN-US_TOPIC_0000001460562992__a394ce2b1018c44a1885b6942c5e8de78"><strong id="EN-US_TOPIC_0000001460562992__b101129207317">Examples</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460562992__s9f10997b0e1d402d8e68d9f414cec621"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">DECLARE</span>
|
|
<span class="w"> </span><span class="n">emp_id</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">7788</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Define a variable and assign a value to it.</span>
|
|
<span class="w"> </span><span class="n">outer_var</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">6688</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Define a variable and assign a value to it.</span>
|
|
<span class="k">BEGIN</span>
|
|
<span class="w"> </span><span class="k">DECLARE</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">emp_id</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">7799</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Define a variable and assign a value to it.</span>
|
|
<span class="w"> </span><span class="n">inner_var</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">6688</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Define a variable and assign a value to it.</span>
|
|
<span class="w"> </span><span class="k">BEGIN</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">'inner emp_id ='</span><span class="o">||</span><span class="n">emp_id</span><span class="p">);</span><span class="w"> </span><span class="c1">-- Display the value as 7799.</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">'outer_var ='</span><span class="o">||</span><span class="n">outer_var</span><span class="p">);</span><span class="w"> </span><span class="c1">-- Cite variables of an outer block.</span>
|
|
<span class="w"> </span><span class="k">END</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="s1">'outer emp_id ='</span><span class="o">||</span><span class="n">emp_id</span><span class="p">);</span><span class="w"> </span><span class="c1">-- Display the value as 7788.</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
<span class="o">/</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001460562992__section1966554953013"><h4 class="sectiontitle">Assignment Statement</h4><p id="EN-US_TOPIC_0000001460562992__p2471552193019"><strong id="EN-US_TOPIC_0000001460562992__b895219413312">Syntax</strong></p>
|
|
<p id="EN-US_TOPIC_0000001460562992__ad9da45e4986347ae95518bd8564ecc31"><a href="#EN-US_TOPIC_0000001460562992__fbc103680b1964ce3bf8a16e5e9076438">Figure 2</a> shows the syntax diagram for assigning a value to a variable.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001460562992__fbc103680b1964ce3bf8a16e5e9076438"><a name="EN-US_TOPIC_0000001460562992__fbc103680b1964ce3bf8a16e5e9076438"></a><a name="fbc103680b1964ce3bf8a16e5e9076438"></a><span class="figcap"><b>Figure 2 </b>assignment_value::=</span><br><span><img id="EN-US_TOPIC_0000001460562992__id519a13234184fc3a07f06b0bcfa583d" src="figure/en-us_image_0000002076329545.png" height="35.910000000000004" width="282.2925" title="Click to enlarge" class="imgResize"></span></div>
|
|
<p id="EN-US_TOPIC_0000001460562992__a86da7c4a5bda49ac8f8d597598c4d465">The above syntax diagram is explained as follows:</p>
|
|
<ul id="EN-US_TOPIC_0000001460562992__u7102c00c0c934f0080d76b37f79f39ad"><li id="EN-US_TOPIC_0000001460562992__l424d81c1b02d4809bc4cdddd9d3d89ab"><strong id="EN-US_TOPIC_0000001460562992__b164404603493140">variable_name</strong> indicates the name of a variable.</li><li id="EN-US_TOPIC_0000001460562992__l7028852460034f18a29275130b53abee"><strong id="EN-US_TOPIC_0000001460562992__b25133421593140">value</strong> can be a value or an expression. The type of <strong id="EN-US_TOPIC_0000001460562992__b137682117693140">value</strong> must be compatible with the type of <strong id="EN-US_TOPIC_0000001460562992__b211756283593140">variable_name</strong>.</li></ul>
|
|
<p id="EN-US_TOPIC_0000001460562992__p13550429163013"><strong id="EN-US_TOPIC_0000001460562992__b146113763211">Examples</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460562992__saeddcca699ce4d7abedda007c4b20792"><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">emp_id</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">7788</span><span class="p">;</span><span class="w"> </span><span class="c1">--Assignment</span>
|
|
<span class="k">BEGIN</span>
|
|
<span class="w"> </span><span class="n">emp_id</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"> </span><span class="c1">--Assignment</span>
|
|
<span class="w"> </span><span class="n">emp_id</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="o">*</span><span class="mi">7784</span><span class="p">;</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
<span class="o">/</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001460562992__section14349043123111"><h4 class="sectiontitle">Call Statement</h4><p id="EN-US_TOPIC_0000001460562992__p238934613316"><strong id="EN-US_TOPIC_0000001460562992__b11517193216">Syntax</strong></p>
|
|
<p id="EN-US_TOPIC_0000001460562992__a6a91b3a2e1c44f1aac62061fc98117f8"><a href="#EN-US_TOPIC_0000001460562992__f299fb9795429468ea45fe86a41dbca6e">Figure 3</a> shows the syntax diagram for calling a clause.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001460562992__f299fb9795429468ea45fe86a41dbca6e"><a name="EN-US_TOPIC_0000001460562992__f299fb9795429468ea45fe86a41dbca6e"></a><a name="f299fb9795429468ea45fe86a41dbca6e"></a><span class="figcap"><b>Figure 3 </b>call_clause::=</span><br><span><img id="EN-US_TOPIC_0000001460562992__icbcfb303148a424bb96a82b2ac42b673" src="figure/en-us_image_0000002040328696.png" height="87.78" width="525.6825" title="Click to enlarge" class="imgResize"></span></div>
|
|
<p id="EN-US_TOPIC_0000001460562992__a13ab19fe6525436db4a5bc3fc35527ba">The above syntax diagram is explained as follows:</p>
|
|
<ul id="EN-US_TOPIC_0000001460562992__u9e21cd14da5645ebaa77c22872f68a20"><li id="EN-US_TOPIC_0000001460562992__l293a3ddd6e2844f295345268ee1b8710"><strong id="EN-US_TOPIC_0000001460562992__b128796421193140">procedure_name</strong> specifies the name of a stored procedure.</li><li id="EN-US_TOPIC_0000001460562992__l1d1d9f830a3b4f93b3bf179c112e092e"><strong id="EN-US_TOPIC_0000001460562992__b50729563293140">parameter</strong> specifies the parameters for the stored procedure. You can set no parameter or multiple parameters.</li></ul>
|
|
<p id="EN-US_TOPIC_0000001460562992__p1645812517321"><strong id="EN-US_TOPIC_0000001460562992__b1750072213217">Examples</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460562992__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_0512.html">GaussDB(DWS) Stored Procedure</a></div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script language="JavaScript">
|
|
<!--
|
|
image_size('.imgResize');
|
|
var msg_imageMax = "view original image";
|
|
var msg_imageClose = "close";
|
|
//--></script> |