Foros del Web » Programación para mayores de 30 ;) » Java »

SQLException: patrón de nombre no válido en Spring y MyBatis

Estas en el tema de SQLException: patrón de nombre no válido en Spring y MyBatis en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/07/2018, 17:37
 
Fecha de Ingreso: febrero-2015
Ubicación: Distrito Federal
Mensajes: 38
Antigüedad: 3 años, 10 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
  #2 (permalink)  
Antiguo 12/07/2018, 21:58
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 706
Antigüedad: 10 años, 5 meses
Puntos: 55
Respuesta: SQLException: patrón de nombre no válido en Spring y MyBatis

Sera que por un lado llamas MYSCHEME y en el otro MY_SCHEME?
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 13/07/2018, 05:27
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.469
Antigüedad: 10 años, 3 meses
Puntos: 184
Respuesta: SQLException: patrón de nombre no válido en Spring y MyBatis

Vigila la notación y sobre todo asegúrate de que todo está a UPPERCASE.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}



La zona horaria es GMT -6. Ahora son las 19:22.