在ibm mobilefirst中访问存储过程获取错误

时间:2015-11-25 08:17:13

标签: oracle ibm-mobilefirst mobilefirst-adapters

我正在尝试使用写在包内的存储过程,但我无法访问:

  

运行时:无法使用过程检索数据:   XXMOB_LOGIN_AN.login_prc

在适配器JS中:

function procedure2(p_usrname,p_password) {
    return WL.Server.invokeSQLStoredProcedure({
        procedure : "XXMOB_LOGIN_AN.login_prc",
        parameters : []
    });
}

程序:

create or replace PACKAGE XXMOB_LOGIN_AN AUTHID CURRENT_USER AS
 Procedure login_prc (
      p_usrname        IN       VARCHAR2,
      p_password       IN       VARCHAR2,
      p_person_id      OUT      VARCHAR2,
      p_groups_id      OUT      VARCHAR2,
      p_person_login   OUT      VARCHAR2,
      p_person_role    OUT      VARCHAR2,
      p_user_id        OUT      VARCHAR2,
      p_welcome        OUT      VARCHAR2,
      p_return         OUT      VARCHAR2,
      P_return_message out      varchar2

   );
END XXMOB_LOGIN_AN; 

在适配器XML中:

<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="strprc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:wl="http://www.ibm.com/mfp/integration"
    xmlns:sql="http://www.ibm.com/mfp/integration/sql">

    <displayName>strprc</displayName>
    <description>strprc</description>
    <connectivity>
        <connectionPolicy xsi:type="sql:SQLConnectionPolicy">
            <!-- Example for using a JNDI data source, replace with actual data source name -->
            <!-- <dataSourceJNDIName>java:/data-source-jndi-name</dataSourceJNDIName> -->

            <!-- Example for using MySQL connector, do not forget to put the MySQL connector library in the project's lib folder -->
            <dataSourceDefinition>
                <driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
                <url>jdbc:oracle:thin:@</url>
                <user>***</user>
                <password>***</password> 
            </dataSourceDefinition>
        </connectionPolicy>
    </connectivity>

    <!-- Replace this with appropriate procedures -->
    <procedure name="procedure2"/>
</wl:adapter>

1 个答案:

答案 0 :(得分:0)

如评论中所述,Worklight不支持SQL适配器中的out参数。请参阅此问题:IBM Worklight - How to get OUT parameter when invoking a stored procedure?

我将您链接到的问题还包含一个答案,如果您希望尝试它,则提供详细的解决方法(基本上,覆盖Worklight并在Java代码中实现它)。