Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/07/2018, 16:37
ferdave1904
 
Fecha de Ingreso: febrero-2015
Ubicación: Distrito Federal
Mensajes: 38
Antigüedad: 9 años, 9 meses
Puntos: 1
SQLException: patrón de nombre no válido en Spring y MyBatis

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
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3.  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.test.do.mapper.MyMapper">
  5.  
  6.    
  7.     <select id="execProc" statementType="CALLABLE"
  8.         parameterType="java.util.Map">
  9.         { call MYSCHEME.MYPACKAGE.STORE_PROCEDURE(
  10.         #{code,mode=IN,jdbcType=VARCHAR,javaType=java.lang.String},
  11.         #{list1,mode=IN,jdbcType=ARRAY,javaType=oracle.sql.ARRAY,typeHandler=com.test.do.mapper.handler.List1Handler},
  12.         #{list2,mode=IN,jdbcType=ARRAY,javaType=oracle.sql.ARRAY,typeHandler=com.test.do.mapper.handler.List2Handler},
  13.         #{numberO,mode=IN,jdbcType=VARCHAR,javaType=java.lang.String},
  14.         #{idsys,mode=IN,jdbcType=VARCHAR,javaType=java.lang.String},
  15.         #{flag,mode=OUT,jdbcType=VARCHAR,javaType=java.lang.String},
  16.         #{errorList,mode=OUT,jdbcType=ARRAY,javaType=oracle.sql.ARRAY,jdbcTypeName=MYSCHEME.MY_TYPE,typeHandler=com.test.do.mapper.handler.ErrorListHandler},
  17.         #{stats,mode=OUT,jdbcType=VARCHAR,javaType=java.lang.String}
  18.         )
  19.         }
  20.     </select>
  21. </mapper>

Del lado de la base de datos tengo los tipos creados de la siguiente manera:
Código SQL:
Ver original
  1. CREATE OR REPLACE TYPE      MY_TYPE AS TABLE OF MY_SCHEME.ERROR_RESULT_LIST;
  2.  
  3. CREATE OR REPLACE TYPE      ERROR_RESULT_LIST AS OBJECT(
  4.     error_number                 NUMBER  ,
  5.     error_code               VARCHAR2(100),
  6.     process_message         VARCHAR2(1000),
  7.     CONSTRUCTOR FUNCTION ERROR_RESULT_LIST RETURN SELF AS RESULT
  8. );

Según yo está todo bien referenciado, ¿alguna idea de porque obtengo esta excepción?

De antemano gracias