首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mule:调用返回自定义类型表的Oracle存储过程

Mule:调用返回自定义类型表的Oracle存储过程
EN

Stack Overflow用户
提问于 2015-08-14 22:07:17
回答 1查看 1.1K关注 0票数 1

我使用的是Mule CE 3.6.1。我使用以下数据库连接器配置调用Oracle存储过程。

代码语言:javascript
复制
<db:stored-procedure config-ref="Oracle_Configuration" doc:name="Database">
    <db:parameterized-query><![CDATA[call get_phone_email(:userId, :tPhoneRecord)]]></db:parameterized-query>
    <db:in-param name="userId" type="NUMERIC" value="#[payload]" />
    <db:out-param name="tPhoneRecord" type="ARRAY" />
</db:stored-procedure>

在存储过程中,参数tPhoneRecord被定义为IS TABLE OF phone_email%ROWTYPE (即记录表)。我尝试指定参数类型ARRAY,但得到错误:

代码语言:javascript
复制
Message    : Invalid argument(s) in call (java.sql.SQLException). Message payload is of type Object[]
Code       : MULE_ERROR--2

我也尝试过使用其他out-param类型,或者没有成功地指定一个类型。

请让我知道我应该为Oracle记录表使用哪种out-param类型,或者我是否应该用Java来实现。在此之前,非常感谢您。

EN

回答 1

Stack Overflow用户

发布于 2016-12-21 14:06:47

您可以对out参数使用以下解决方案。

代码语言:javascript
复制
<db:oracle-config name="Oracle_Configuration" url="jdbc:oracle:thin:@54.175.245.218:1581:xe" user="user" password="4321" >
    </db:oracle-config>
    <db:data-type name="INtypename" id="12"/>
    <!-- VARCHAR id=12  -->
    <db:data-type name="OUTtypename" id="2002"/>
    <!-- STRUCT id=2002  -->
    </db:data-types>
    ...
    <db:stored-procedure config-ref="Generic_Database_Configuration" doc:name="Database">
        <db:parameterized-query><![CDATA[CALL storedprocfnc(:INtypename,:OUTtypename);]]></db:parameterized-query>
            <db:in-param name="INtypename" value="#[payload]"/>
            <db:out-param name="OUTtypename" />
    </db:stored-procedure>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32012072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档