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

Problemas: Ibatis como obtengo un cursor de un procedure en oracle

Estas en el tema de Problemas: Ibatis como obtengo un cursor de un procedure en oracle en el foro de Java en Foros del Web. Tengo un problema este es mi map <resultMap id="gredtSplitterFibraResult" class="com.tdp.gred.bean.GredtSplitterFibra" > <result column="SPFIP_CODIGO_SPLITTER_FIBRA" property="spfipCodigoSplitterFibra" jdbcType="VARCHAR" /> <result column="SPFIF_CODIGO_MODELO" property="spfifCodigoModelo" jdbcType="VARCHAR" /> <result column="SPFIF_CODIGO_TIPO_SPLITTER" property="spfifCodigoTipoSplitter" jdbcType="VARCHAR" ...
  #1 (permalink)  
Antiguo 11/09/2008, 07:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Busqueda Problemas: Ibatis como obtengo un cursor de un procedure en oracle

Tengo un problema este es mi map

<resultMap id="gredtSplitterFibraResult" class="com.tdp.gred.bean.GredtSplitterFibra" >

<result column="SPFIP_CODIGO_SPLITTER_FIBRA" property="spfipCodigoSplitterFibra" jdbcType="VARCHAR" />
<result column="SPFIF_CODIGO_MODELO" property="spfifCodigoModelo" jdbcType="VARCHAR" />
<result column="SPFIF_CODIGO_TIPO_SPLITTER" property="spfifCodigoTipoSplitter" jdbcType="VARCHAR" />
<result column="SPFIF_CODIGO_CAJA_EMPALME" property="spfifCodigoCajaEmpalme" jdbcType="VARCHAR" />
<result column="SPFIC_USUARIO_CREACION" property="spficUsuarioCreacion" jdbcType="VARCHAR" />
<result column="SPFIC_FECHA_CREACION" property="spficFechaCreacion" jdbcType="DATE" />
<result column="SPFIC_USUARIO_MODIFICACION" property="spficUsuarioModificacion" jdbcType="VARCHAR" />
<result column="SPFIC_FECHA_MODIFICACION" property="spficFechaModificacion" jdbcType="DATE" />
<result column="SPFIF_CODIGO_ODF" property="spfifCodigoOdf" jdbcType="VARCHAR" />
<result column="SPFIC_NIVEL" property="spficNivel" jdbcType="DECIMAL" />
<result column="SPFIF_COD_ARMARIO_FIBRA" property="spfifCodArmarioFibra" jdbcType="VARCHAR" />
<result column="SPFIF_CODIGO_FABRICANTE" property="spfifCodigoFabricante" jdbcType="VARCHAR" />
<result column="SPFIF_CODIGO_ESTADO" property="spfifCodigoEstado" jdbcType="VARCHAR" />
<result column="SPFIC_CAPACIDAD" property="spficCapacidad" jdbcType="DECIMAL" />
<result column="SPFIF_TIPO" property="spfifTipo" jdbcType="VARCHAR" />
</resultMap>


mis parametros
<parameterMap class="java.util.Map" id="parametrosMap" >
<parameter property="P_OUT_SPLITTER" mode="OUT" jdbcType="ORACLECURSOR" />
<parameter property="P_CODIGO_CENTRO_RED" mode="INOUT" jdbcType="VARCHAR" javaType="java.lang.String"/>
<parameter property="P_CODIGO_ODF" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/>
<parameter property="P_CODIGO_TIPO_SPLITTER" mode="INOUT" jdbcType="VARCHAR" javaType="java.lang.String"/>
<parameter property="P_CODIGO_CAJA_EMPALME" mode="INOUT" jdbcType="VARCHAR" javaType="java.lang.String"/>
<parameter property="P_CODIGO_ESTADO" mode="INOUT" jdbcType="VARCHAR" javaType="java.lang.String"/>
<parameter property="P_CODIGO_TIPO" mode="INOUT" jdbcType="VARCHAR" javaType="java.lang.String"/>

</parameterMap>


la llamada al procedure
<procedure id="listarSplitter" parameterMap="parametrosMap" resultMap="gredtSplitterFibraResult">
{call PROC_GRED_INVENTARIO.GREDSS_SPLITTER(?,?,?,?,?,?,? ) }
</procedure>



La clase que ejecuto es:



public static List listar (Map mapSplitter) throws SQLException {
List lista = null;
System.out.println(mapSplitter);
try{
lista= sqlMapper.queryForList("listarSplitter",mapSplitte r);
System.out.println(lista);


}catch(Exception e){
e.printStackTrace();
}
return lista;
}



Esta es la clase que llamo mediante un main

public static void main(String ar[]){
test();
}

public static List test(){
String credpCodigoCentroRed = "";
String odfpCodigoOdf = "";
String tsplpCodigoTipoSplitter = "";
String caempCodigoCajaEmpalme = "";
String estapCodigoEstado = "";
String tipo = "";
List lista = null;
try {
SimpleExample simple = new SimpleExample();
Map mapSplitter= new HashMap();
mapSplitter.put("P_CODIGO_CENTRO_RED",credpCodigoC entroRed);
mapSplitter.put("P_CODIGO_ODF",odfpCodigoOdf);
mapSplitter.put("P_CODIGO_TIPO_SPLITTER",tsplpCodi goTipoSplitter);
mapSplitter.put("P_CODIGO_CAJA_EMPALME",caempCodig oCajaEmpalme);
mapSplitter.put("P_CODIGO_ESTADO",estapCodigoEstad o);
mapSplitter.put("P_CODIGO_TIPO",tipo);



lista= simple.listar(mapSplitter);
System.out.println("tam "+lista.size());

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return lista;
}

Este es el procedure q esta en un package

PROCEDURE GREDSS_SPLITTER (
P_OUT_SPLITTER OUT CURSOR_TYPE,
P_CODIGO_CENTRO_RED IN VARCHAR2,
P_CODIGO_ODF IN VARCHAR2,
P_CODIGO_TIPO_SPLITTER IN VARCHAR2,
P_CODIGO_CAJA_EMPALME IN VARCHAR2,
P_CODIGO_ESTADO IN VARCHAR2,
P_CODIGO_TIPO IN VARCHAR2

) IS

CQUERY VARCHAR2(4000);
BEGIN
CQUERY := ' SELECT SPFIP_CODIGO_SPLITTER_FIBRA,
SPFIF_CODIGO_MODELO,
SPFIF_CODIGO_TIPO_SPLITTER,
SPFIF_CODIGO_CAJA_EMPALME,
SPFIC_USUARIO_CREACION,
SPFIC_FECHA_CREACION,
SPFIC_USUARIO_MODIFICACION,
SPFIC_FECHA_MODIFICACION,
SPFIF_CODIGO_ODF,
SPFIC_NIVEL,
SPFIF_COD_ARMARIO_FIBRA,
SPFIF_CODIGO_FABRICANTE,
SPFIF_CODIGO_ESTADO,
SPFIC_CAPACIDAD,
SPFIC_FLAG_ESTADO,
SPFIC_FLAG_GIS,
SPFIC_FLAG_BLOQUEO_PROYECTO,
SPFIC_CODIGO_PROYECTO,
SPFIC_CODIGO_OT,
SPFIF_TIPO
FROM GRED.GREDT_SPLITTER_FIBRA
';

OPEN P_OUT_SPLITTER FOR CQUERY;

EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (-20999, 'Error en GREDSS_SPLITTER. ' || SQLERRM);

END GREDSS_SPLITTER;
Cuando lo ejecuto dentro de la bd el procedure me devuelve un listado, pero cuando lo ejecuto del ibatis me devuelve una lista vacia, algo que est haciendo mal en el llmado de ibatis hacia el procedure?

He probado los casos que he encontrado en ingles y en foros pero no me resulta por seacaso estoy utilizando la version 2.3.0.677 del ibatis

podrian decirme que estoy haciendo mal?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.