我正在尝试使用写在包内的存储过程,但我无法访问:
运行时:无法使用过程检索数据: 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>
答案 0 :(得分:0)
如评论中所述,Worklight不支持SQL适配器中的out
参数。请参阅此问题:IBM Worklight - How to get OUT parameter when invoking a stored procedure?
我将您链接到的问题还包含一个答案,如果您希望尝试它,则提供详细的解决方法(基本上,覆盖Worklight并在Java代码中实现它)。