I am having problem calling oracle Stored Procedure and getting Output parameters from Oracle Stored Procedure. Here is my mapper AppUserMapper.java
public interface AppUserMapper {
@Select(value= "{ CALL sp_check_user( #{userId, mode=IN, jdbcType=VARCHAR }, #{userPwd, mode=IN, jdbcType=VARCHAR}, #{userType, jdbcType=VARCHAR, mode=OUT} )}")
@Options(statementType = StatementType.CALLABLE)
Object getUserType(String userId,String UserPwd);
}
Dao call
Map<String, Object> retrurnStatus = (Map<String, Object>) appUserMapper.getUserType(userId,UserPwd);
Here is Stored Procedure code
CREATE OR REPLACE PROCEDURE HR.sp_check_user (userId VARCHAR,userPwd VARCHAR, userType OUT VARCHAR )
AS
BEGIN
BEGIN
select user_type into userType from appuser where USER_ID = userId and USER_PWD = userPwd ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
userType := 'Invalid';
END ;
END ;
/
It is executing stored procedure but giving error
DEBUG 2014-04-12 09:51:56,948 org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl: ==> Preparing: { CALL sp_check_user( ?, ?, ? ) }
DEBUG 2014-04-12 09:51:57,103 org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl: ==> Parameters: abc(String), abc1(String)
Could not complete request
java.lang.NullPointerException
at com.appuser.dao.AppUserDaoImpl.getUserType(AppUserDaoImpl.java:33)
I had been trying multiple options but could not find sample which I can take as is and try.
I will relay appropriate help on this as I have been trying to use oracle stored procs in mybatis with multiple input and output parameters.
Can someone provide simple example for calling Oracle stored procedure using mybatis for multiple input output parameters?