[执行存储过程]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;"><Integer, String>分别表示参数位置和参数值</td>
</tr>
<tr>
<td style="text-align: left;">outMap</td>
<td style="text-align: left;">Map</td>
<td style="text-align: left;"><Integer, String>分别表示参数位置和参数名(oracle存储过程游标参数需要在参数位置+100,如<101, "out_course">)</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:&quot;2&quot;];
def outMap = [2:&quot;count&quot;,103:&quot;res&quot;];
exeProcedure(&quot;oracle&quot;, &quot;test_select&quot;, inMap, outMap);;//调用名称为“test_select”的存储过程,传入输出参数:2,输出参数:count、res(游标输出参数位置+100所以位置设置的103)</code></pre>
<p><strong>输出结果</strong></p>
<pre><code>&lt;root&gt;
&lt;form count=3 totalCount=3&gt;
&lt;row&gt;
&lt;name&gt;22&lt;/name&gt;
&lt;id&gt;2&lt;/id&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;name&gt;22&lt;/name&gt;
&lt;id&gt;3&lt;/id&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;name&gt;test&lt;/name&gt;
&lt;id&gt;1&lt;/id&gt;
&lt;/row&gt;
&lt;/form&gt;
&lt;/root&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 &quot;test&quot;;
open o_cur for
select * from &quot;test&quot;;
end;</code></pre></li>
</ul>