Hola amigos, espero puedan ayudarme, estoy teniendo un problema al ejecutar un store procedure en Oracle con Spring y MyBatis especificamente el problema es con un parámetro de salid, me arroja la excepción:
SQL: { call MYSCHEME.MYPACKAGE.STORE_PROCEDURE( ?, ?, ?, ?, ?, ?, ?, ? ) }
### Cause: java.sql.SQLException: patrón de nombre no válido: MYSCHEME.MY_TYPE
En el xml de mi Mapper tengo lo siguiente:
Código XML:
Ver original<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.do.mapper.MyMapper">
<select id="execProc" statementType="CALLABLE"
parameterType="java.util.Map">
{ call MYSCHEME.MYPACKAGE.STORE_PROCEDURE(
#{code,mode=IN,jdbcType=VARCHAR,javaType=java.lang.String},
#{list1,mode=IN,jdbcType=ARRAY,javaType=oracle.sql.ARRAY,typeHandler=com.test.do.mapper.handler.List1Handler},
#{list2,mode=IN,jdbcType=ARRAY,javaType=oracle.sql.ARRAY,typeHandler=com.test.do.mapper.handler.List2Handler},
#{numberO,mode=IN,jdbcType=VARCHAR,javaType=java.lang.String},
#{idsys,mode=IN,jdbcType=VARCHAR,javaType=java.lang.String},
#{flag,mode=OUT,jdbcType=VARCHAR,javaType=java.lang.String},
#{errorList,mode=OUT,jdbcType=ARRAY,javaType=oracle.sql.ARRAY,jdbcTypeName=MYSCHEME.MY_TYPE,typeHandler=com.test.do.mapper.handler.ErrorListHandler},
#{stats,mode=OUT,jdbcType=VARCHAR,javaType=java.lang.String}
)
}
</select>
</mapper>
Del lado de la base de datos tengo los tipos creados de la siguiente manera:
Código SQL:
Ver originalCREATE OR REPLACE TYPE MY_TYPE AS TABLE OF MY_SCHEME.ERROR_RESULT_LIST;
CREATE OR REPLACE TYPE ERROR_RESULT_LIST AS OBJECT(
error_number NUMBER ,
error_code VARCHAR2(100),
process_message VARCHAR2(1000),
CONSTRUCTOR FUNCTION ERROR_RESULT_LIST RETURN SELF AS RESULT
);
Según yo está todo bien referenciado, ¿alguna idea de porque obtengo esta excepción?
De antemano gracias