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

Erroral lanzar funcion de PL/SQL desde JDBC - SOLUCIONADO

Estas en el tema de Erroral lanzar funcion de PL/SQL desde JDBC - SOLUCIONADO en el foro de Java en Foros del Web. Buneo al lanzar una funcion pl/SQL de oracle desde java me lanza esta excepcion: Código PHP: Caused by :  java . lang . NullPointerException     at oracle . ...
  #1 (permalink)  
Antiguo 03/08/2005, 06:42
 
Fecha de Ingreso: septiembre-2004
Mensajes: 191
Antigüedad: 19 años, 7 meses
Puntos: 1
Erroral lanzar funcion de PL/SQL desde JDBC - SOLUCIONADO

Buneo al lanzar una funcion pl/SQL de oracle desde java me lanza esta excepcion:

Código PHP:
Caused byjava.lang.NullPointerException
    at oracle
.jdbc.ttc7.TTCAdapter.newTTCType(TTCAdapter.java:300)
    
at oracle.jdbc.ttc7.TTCAdapter.createNonPlsqlTTCColumnArray(TTCAdapter.java:270)
    
at oracle.jdbc.ttc7.TTCAdapter.createNonPlsqlTTCDataSet(TTCAdapter.java:231)
    
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1843)
    
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
    
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
    
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
    
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
    
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589
La funcion se lanza con un CallableStatement:

Código PHP:
callableStatement conexionBD.prepareCall("? = CALL ALQ_PCK_EXTERNO.ALQ_FN_EXISTE_CARTA_PAGO (?)");     
      for (
int i 0intParametrosi++) {
        
fncPonerParametroProcedimiento(callableStatement1, (ClsParametroSQL)arrPfParametros.get(i));
      }
      
ClsLog.info("Puestos Parámetros");
      
callableStatement.executeUpdate(); 
Y me casca en el executeUpdate, lanzando el null puinter exception. La funcion fncPonerParametroProcedimiento mete dos parametros al statement, el primero es un output parameter registrado con registerOutParameter para poder recojer el resultado.

La cuestion esq esto siempre me ha funcionado bien para llamar a procedimientos, y ahora q es una funcion me casca aki Quizas sea tb q los procedimientos q he ejecutado no tenian parametros de retorno.

Si alguno sabeis el error.....
saludos

Última edición por sanmi69; 04/08/2005 a las 06:12 Razón: Solucionado
  #2 (permalink)  
Antiguo 04/08/2005, 06:11
 
Fecha de Ingreso: septiembre-2004
Mensajes: 191
Antigüedad: 19 años, 7 meses
Puntos: 1
Bueno me autorespondo

Aber la llamada de la funcion esta aki:
Código PHP:
 callableStatement conexionBD.prepareCall("? = CALL ALQ_PCK_EXTERNO.ALQ_FN_EXISTE_CARTA_PAGO (?)"); 
Y no me digais porque pero cuando se llama a un procedure almacenado da = como escribas el call y si va en tre llaves, pero cuando se llama a una funcion OBLIGATORIAMENTE debe ir el call en minusculas y entre llaves la llamada, quedaria talque asi:

Código PHP:
 callableStatement conexionBD.prepareCall("{? = call ALQ_PCK_EXTERNO.ALQ_FN_EXISTE_CARTA_PAGO (?)}"); 
Ya veis una txorrada, y encima sin ninguna logica y no documentada por SUN, por lo menos no documentada en la API

En fins.....

saludos
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 18:54.