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>
214 lines
29 KiB
HTML
214 lines
29 KiB
HTML
<a name="EN-US_TOPIC_0000001145814771"></a><a name="EN-US_TOPIC_0000001145814771"></a>
|
|
|
|
<h1 class="topictitle1">record</h1>
|
|
<div id="body1552286443844"><div class="section" id="EN-US_TOPIC_0000001145814771__section16992418680"><h4 class="sectiontitle">record Variables</h4><p id="EN-US_TOPIC_0000001145814771__p1686449141110">Perform the following operations to create a record variable:</p>
|
|
<p id="EN-US_TOPIC_0000001145814771__p29131230104911">Define a record type and use this type to declare a variable.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001145814771__section7403195020496"><h4 class="sectiontitle">Syntax</h4><p id="EN-US_TOPIC_0000001145814771__p02851429115018">For the syntax of the record type, see <a href="#EN-US_TOPIC_0000001145814771__fig092918316312">Figure 1</a>.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001145814771__fig092918316312"><a name="EN-US_TOPIC_0000001145814771__fig092918316312"></a><a name="fig092918316312"></a><span class="figcap"><b>Figure 1 </b>Syntax of the record type</span><br><span><img id="EN-US_TOPIC_0000001145814771__image11930193118315" src="figure/en-us_image_0000001099135218.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001145814771__ae84948cfc96c4abd97e9a16c03fc31d3">The syntax is described as follows:</p>
|
|
<ul id="EN-US_TOPIC_0000001145814771__ufacaf3fe4514411e90508e200cf51505"><li id="EN-US_TOPIC_0000001145814771__lce7016558f084a968a2ba9c678533d8f"><strong id="EN-US_TOPIC_0000001145814771__b65021821421">record_type</strong>: record name</li><li id="EN-US_TOPIC_0000001145814771__li259014378482"><strong id="EN-US_TOPIC_0000001145814771__b1560719112021">field</strong>: record columns</li><li id="EN-US_TOPIC_0000001145814771__li1071911619493"><strong id="EN-US_TOPIC_0000001145814771__b1246413442217">datatype</strong>: record data type</li><li id="EN-US_TOPIC_0000001145814771__li10922154174920"><strong id="EN-US_TOPIC_0000001145814771__b73569582219">expression</strong>: expression for setting a default value</li></ul>
|
|
</div>
|
|
<div class="note" id="EN-US_TOPIC_0000001145814771__nfd5cc7a265b34e57a7bbc08f8d892991"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001145814771__p20519161694317">In <span id="EN-US_TOPIC_0000001145814771__text196460242">GaussDB(DWS)</span>:</p>
|
|
<ul id="EN-US_TOPIC_0000001145814771__u0d788093c09a4a289bcde752734041dc"><li id="EN-US_TOPIC_0000001145814771__li4652112044312">When assigning values to record variables, you can:<ul id="EN-US_TOPIC_0000001145814771__ul827611316517"><li id="EN-US_TOPIC_0000001145814771__li12276121318519">Declare a record type and define member variables of this type when you declare a function or stored procedure.</li><li id="EN-US_TOPIC_0000001145814771__li6951131812513">Assign the value of a record variable to another record variable.</li><li id="EN-US_TOPIC_0000001145814771__li182761113115117">Use <strong id="EN-US_TOPIC_0000001145814771__b517511563119">SELECT INTO</strong> or <strong id="EN-US_TOPIC_0000001145814771__b1675316421213">FETCH</strong> to assign values to a record type.</li><li id="EN-US_TOPIC_0000001145814771__li7276111345112">Assign the <strong id="EN-US_TOPIC_0000001145814771__b85374115124">NULL</strong> value to a record variable.</li></ul>
|
|
</li><li id="EN-US_TOPIC_0000001145814771__l404111d221a547e3bf1f9ac8e957dd8b">The <strong id="EN-US_TOPIC_0000001145814771__b1717016171155">INSERT</strong> and <strong id="EN-US_TOPIC_0000001145814771__b443942010154">UPDATE</strong> statements cannot use a record variable to insert or update data.</li><li id="EN-US_TOPIC_0000001145814771__li1634204243613">Just like a variable, a record column of the compound type does not have a default value in the declaration.</li></ul>
|
|
</div></div>
|
|
<div class="section" id="EN-US_TOPIC_0000001145814771__sf8c40d63bf184b2281b89aea22e82eb6"><h4 class="sectiontitle">Examples</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001145814771__secad9c67204f445f94631833da975a1b"><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>
|
|
<span class="normal">51</span>
|
|
<span class="normal">52</span>
|
|
<span class="normal">53</span>
|
|
<span class="normal">54</span>
|
|
<span class="normal">55</span>
|
|
<span class="normal">56</span>
|
|
<span class="normal">57</span>
|
|
<span class="normal">58</span>
|
|
<span class="normal">59</span>
|
|
<span class="normal">60</span>
|
|
<span class="normal">61</span>
|
|
<span class="normal">62</span>
|
|
<span class="normal">63</span>
|
|
<span class="normal">64</span>
|
|
<span class="normal">65</span>
|
|
<span class="normal">66</span>
|
|
<span class="normal">67</span>
|
|
<span class="normal">68</span>
|
|
<span class="normal">69</span>
|
|
<span class="normal">70</span>
|
|
<span class="normal">71</span>
|
|
<span class="normal">72</span>
|
|
<span class="normal">73</span>
|
|
<span class="normal">74</span>
|
|
<span class="normal">75</span>
|
|
<span class="normal">76</span>
|
|
<span class="normal">77</span>
|
|
<span class="normal">78</span>
|
|
<span class="normal">79</span>
|
|
<span class="normal">80</span>
|
|
<span class="normal">81</span>
|
|
<span class="normal">82</span>
|
|
<span class="normal">83</span>
|
|
<span class="normal">84</span>
|
|
<span class="normal">85</span>
|
|
<span class="normal">86</span>
|
|
<span class="normal">87</span>
|
|
<span class="normal">88</span>
|
|
<span class="normal">89</span>
|
|
<span class="normal">90</span>
|
|
<span class="normal">91</span>
|
|
<span class="normal">92</span>
|
|
<span class="normal">93</span>
|
|
<span class="normal">94</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">The</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">following</span><span class="w"> </span><span class="n">stored</span><span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="k">defined</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">follows</span><span class="p">:</span><span class="w"></span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">emp_rec</span><span class="w"></span>
|
|
<span class="p">(</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">empno</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">ename</span><span class="w"> </span><span class="nb">character</span><span class="w"> </span><span class="nb">varying</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">job</span><span class="w"> </span><span class="nb">character</span><span class="w"> </span><span class="nb">varying</span><span class="p">(</span><span class="mi">9</span><span class="p">),</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">mgr</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">hiredate</span><span class="w"> </span><span class="k">timestamp</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">without</span><span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="k">zone</span><span class="p">,</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">sal</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">comm</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">deptno</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="w"></span>
|
|
<span class="p">)</span><span class="w"></span>
|
|
<span class="k">with</span><span class="w"> </span><span class="p">(</span><span class="n">orientation</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">column</span><span class="p">,</span><span class="n">compression</span><span class="o">=</span><span class="n">middle</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="w"> </span><span class="p">(</span><span class="n">sal</span><span class="p">);</span><span class="w"></span>
|
|
<span class="err">\</span><span class="n">d</span><span class="w"> </span><span class="n">emp_rec</span><span class="w"></span>
|
|
<span class="w"> </span><span class="k">Table</span><span class="w"> </span><span class="ss">"public.emp_rec"</span><span class="w"></span>
|
|
<span class="w"> </span><span class="k">Column</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">Type</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Modifiers</span><span class="w"> </span>
|
|
<span class="c1">----------+--------------------------------+-----------</span>
|
|
<span class="w"> </span><span class="n">empno</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">ename</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">character</span><span class="w"> </span><span class="nb">varying</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">job</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">character</span><span class="w"> </span><span class="nb">varying</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">mgr</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">hiredate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">timestamp</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">without</span><span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="k">zone</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">sal</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">comm</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">deptno</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
|
|
<span class="c1">-- Perform array operations in the stored procedure.</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">regress_record</span><span class="p">(</span><span class="n">p_w</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">)</span><span class="w"></span>
|
|
<span class="k">RETURNS</span><span class="w"></span>
|
|
<span class="n">VARCHAR2</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="err">$$</span><span class="w"></span>
|
|
<span class="k">DECLARE</span><span class="w"></span>
|
|
|
|
<span class="w"> </span><span class="c1">-- Declare a record type.</span>
|
|
<span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="n">rec_type</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">varchar2</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span><span class="w"> </span><span class="n">epno</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">employer</span><span class="w"> </span><span class="n">rec_type</span><span class="p">;</span><span class="w"></span>
|
|
|
|
<span class="w"> </span><span class="c1">-- Use %type to declare the record type.</span>
|
|
<span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="n">rec_type1</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="n">emp_rec</span><span class="p">.</span><span class="n">ename</span><span class="o">%</span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">epno</span><span class="w"> </span><span class="nb">int</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">10</span><span class="p">);</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">employer1</span><span class="w"> </span><span class="n">rec_type1</span><span class="p">;</span><span class="w"></span>
|
|
|
|
<span class="w"> </span><span class="c1">-- Declare a record type with a default value.</span>
|
|
<span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="n">rec_type2</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="n">varchar2</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="s1">'SCOTT'</span><span class="p">,</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">epno</span><span class="w"> </span><span class="nb">int</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="mi">10</span><span class="p">);</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">employer2</span><span class="w"> </span><span class="n">rec_type2</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span><span class="k">CURSOR</span><span class="w"> </span><span class="n">C1</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">ename</span><span class="p">,</span><span class="n">empno</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">emp_rec</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">limit</span><span class="w"> </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="c1">-- Assign a value to a member record variable.</span>
|
|
<span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">name</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="s1">'WARD'</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">epno</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">18</span><span class="p">;</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">'employer name: % , epno:%'</span><span class="p">,</span><span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">epno</span><span class="p">;</span><span class="w"></span>
|
|
|
|
<span class="w"> </span><span class="c1">-- Assign the value of a record variable to another variable.</span>
|
|
<span class="w"> </span><span class="n">employer1</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="n">employer</span><span class="p">;</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">'employer1 name: % , epno: %'</span><span class="p">,</span><span class="n">employer1</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer1</span><span class="p">.</span><span class="n">epno</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span>
|
|
<span class="w"> </span><span class="c1">-- Assign the NULL value to a record variable.</span>
|
|
<span class="w"> </span><span class="n">employer1</span><span class="w"> </span><span class="p">:</span><span class="o">=</span><span class="w"> </span><span class="k">NULL</span><span class="p">;</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">'employer1 name: % , epno: %'</span><span class="p">,</span><span class="n">employer1</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer1</span><span class="p">.</span><span class="n">epno</span><span class="p">;</span><span class="w"></span>
|
|
|
|
<span class="w"> </span><span class="c1">-- Obtain the default value of a record variable.</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">'employer2 name: % ,epno: %'</span><span class="p">,</span><span class="w"> </span><span class="n">employer2</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer2</span><span class="p">.</span><span class="n">epno</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span>
|
|
<span class="w"> </span><span class="c1">-- Use a record variable in the FOR loop.</span>
|
|
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">employer</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">ename</span><span class="p">,</span><span class="n">empno</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">emp_rec</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">limit</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">loop</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">'employer name: % , epno: %'</span><span class="p">,</span><span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">epno</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="w"> </span><span class="c1">-- Use a record variable in the SELECT INTO statement.</span>
|
|
<span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">ename</span><span class="p">,</span><span class="n">empno</span><span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="n">employer2</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">emp_rec</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">limit</span><span class="w"> </span><span class="mi">1</span><span class="p">;</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">'employer name: % , epno: %'</span><span class="p">,</span><span class="w"> </span><span class="n">employer2</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer2</span><span class="p">.</span><span class="n">epno</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span>
|
|
<span class="w"> </span><span class="c1">-- Use a record variable in a cursor.</span>
|
|
<span class="w"> </span><span class="k">OPEN</span><span class="w"> </span><span class="n">C1</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span><span class="k">FETCH</span><span class="w"> </span><span class="n">C1</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employer2</span><span class="p">;</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">'employer name: % , epno: %'</span><span class="p">,</span><span class="w"> </span><span class="n">employer2</span><span class="p">.</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">employer2</span><span class="p">.</span><span class="n">epno</span><span class="p">;</span><span class="w"></span>
|
|
<span class="w"> </span><span class="k">CLOSE</span><span class="w"> </span><span class="n">C1</span><span class="p">;</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">RETURN</span><span class="w"> </span><span class="n">employer</span><span class="p">.</span><span class="n">name</span><span class="p">;</span><span class="w"></span>
|
|
<span class="k">END</span><span class="p">;</span><span class="w"></span>
|
|
<span class="err">$$</span><span class="w"></span>
|
|
<span class="k">LANGUAGE</span><span class="w"> </span><span class="n">plpgsql</span><span class="p">;</span><span class="w"></span>
|
|
|
|
<span class="c1">-- Invoke the stored procedure.</span>
|
|
<span class="k">CALL</span><span class="w"> </span><span class="n">regress_record</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">);</span><span class="w"></span>
|
|
<span class="n">INFO</span><span class="p">:</span><span class="w"> </span><span class="n">employer</span><span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="n">WARD</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">epno</span><span class="p">:</span><span class="mi">18</span><span class="w"></span>
|
|
<span class="n">INFO</span><span class="p">:</span><span class="w"> </span><span class="n">employer1</span><span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="n">WARD</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">epno</span><span class="p">:</span><span class="w"> </span><span class="mi">18</span><span class="w"></span>
|
|
<span class="n">INFO</span><span class="p">:</span><span class="w"> </span><span class="n">employer1</span><span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="o"><</span><span class="k">NULL</span><span class="o">></span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">epno</span><span class="p">:</span><span class="w"> </span><span class="o"><</span><span class="k">NULL</span><span class="o">></span><span class="w"></span>
|
|
<span class="n">INFO</span><span class="p">:</span><span class="w"> </span><span class="n">employer2</span><span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="n">SCOTT</span><span class="w"> </span><span class="p">,</span><span class="n">epno</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="w"></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">regress_record</span><span class="p">;</span><span class="w"></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_0516.html">Arrays and Records</a></div>
|
|
</div>
|
|
</div>
|
|
|