DEE

数据交换


[执行存储过程]v_3.1

<p><strong>方法签名:</strong> </p> <p><code>exeProcedure(sourceName, procedureName, inMap, outMap)</code></p> <p><strong>简要描述:</strong> </p> <ul> <li>使用该方法可以调用数据库存储过程</li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">sourceName</td> <td style="text-align: left;">String</td> <td style="text-align: left;">数据源名称</td> </tr> <tr> <td style="text-align: left;">procedureName</td> <td style="text-align: left;">String</td> <td style="text-align: left;">存储过程名称,如果是oracle数据库需要加包名</td> </tr> <tr> <td style="text-align: left;">inMpa</td> <td style="text-align: left;">Map</td> <td style="text-align: left;">&lt;Integer, String&gt;分别表示参数位置和参数值</td> </tr> <tr> <td style="text-align: left;">outMap</td> <td style="text-align: left;">Map</td> <td style="text-align: left;">&lt;Integer, String&gt;分别表示参数位置和参数名(oracle存储过程游标参数需要在参数位置+100,如&lt;101, &quot;out_course&quot;&gt;)</td> </tr> </tbody> </table> <p><strong>返回值说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">类型</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">无</td> <td style="text-align: left;">会将执行存储过程获取的数据合并到当前任务的document中,输出参数将会以map形式存入参数</td> </tr> </tbody> </table> <p><strong>使用例子</strong></p> <pre><code>def inMap = [1:&amp;quot;2&amp;quot;]; def outMap = [2:&amp;quot;count&amp;quot;,103:&amp;quot;res&amp;quot;]; exeProcedure(&amp;quot;oracle&amp;quot;, &amp;quot;test_select&amp;quot;, inMap, outMap);;//调用名称为“test_select”的存储过程,传入输出参数:2,输出参数:count、res(游标输出参数位置+100所以位置设置的103)</code></pre> <p><strong>输出结果</strong></p> <pre><code>&amp;lt;root&amp;gt; &amp;lt;form count=3 totalCount=3&amp;gt; &amp;lt;row&amp;gt; &amp;lt;name&amp;gt;22&amp;lt;/name&amp;gt; &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt; &amp;lt;/row&amp;gt; &amp;lt;row&amp;gt; &amp;lt;name&amp;gt;22&amp;lt;/name&amp;gt; &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt; &amp;lt;/row&amp;gt; &amp;lt;row&amp;gt; &amp;lt;name&amp;gt;test&amp;lt;/name&amp;gt; &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt; &amp;lt;/row&amp;gt; &amp;lt;/form&amp;gt; &amp;lt;/root&amp;gt; </code></pre> <p><strong>备注</strong> </p> <ul> <li>上述结果的输出参数count结果可以在document的Parameters获取,参数名:proceduresOutParms。 下面为上面调用的oracle存储过程: <pre><code>CREATE OR REPLACE procedure test_select(i_id in varchar, o_count out number, o_cur out sys_refcursor) as begin select count(*) into o_count from &amp;quot;test&amp;quot;; open o_cur for select * from &amp;quot;test&amp;quot;; end;</code></pre></li> </ul>

页面列表

ITEM_HTML