Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2013, 04:01
ezurita
 
Fecha de Ingreso: julio-2013
Mensajes: 1
Antigüedad: 11 años, 5 meses
Puntos: 0
Error al hacer un update en BBDD Oracle

Os dejo el codigo haber si me podeis echar una mano,
Código Java:
Ver original
  1. public void modificarEntidad(Connection conexion, ParcialesCobrados entidad)throws SQLException, java.text.ParseException {
  2.        
  3.         String sql = "UPDATE ParcialesCobrados SET EMPRESA = ?, " +
  4.                 " CENTRO = ?, FECHA = ? WHERE HORA = ? AND  FICHERO = ? AND ESTADO = '?'";
  5.    
  6.    
  7.     try{
  8.        
  9.         PreparedStatement statement = conexion.prepareStatement(sql);
  10.        
  11.        
  12.         try{
  13.                
  14.         statement.setString(1, "004");
  15.         statement.setString(2, entidad.getClave().getCentro());    
  16.         Date fecha = null;
  17.                 SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");                
  18.                 fecha = formateador.parse(entidad.getClave().getFecha());
  19.                 java.sql.Date sqlDate = new java.sql.Date(fecha.getTime());
  20.             statement.setDate(3,sqlDate);      
  21.         Date hora = null;
  22.         SimpleDateFormat formateador2 = new SimpleDateFormat("hh:mm:ss");
  23.         hora = formateador2.parse(entidad.getHora());
  24.         java.sql.Time sqlTime = new java.sql.Time(hora.getTime());
  25.         statement.setTime(4,sqlTime);      
  26.         statement.setString(5, entidad.getEstado());   
  27.         statement.setString(6, entidad.getFicheroExt());
  28.                                    
  29.             statement.executeUpdate();
  30.             statement.close();
  31.            
  32.         }
  33.             catch (ParseException e) {
  34.             e.printStackTrace();
  35.         }
  36.     }
  37.    
  38.     catch (SQLException e) {
  39.         System.out.println("Error al realizar UPDATE sobre la tabla ParcialesCobrados");
  40.         e.printStackTrace();
  41.         throw new SQLException();
  42.     }  
  43.            
  44.        
  45.     }
  46.    
  47.    
  48.    
  49.     public static void main( String args[]) throws SQLException, java.text.ParseException{
  50.        
  51.       ParcialesCobrados pc = new ParcialesCobrados("16:30:00", "", "1");
  52.    
  53.       ParcialesCobradosPK pcpk = new ParcialesCobradosPK("001", "0099", "08/11/2013");
  54.      
  55.       pc.setClave(pcpk);
  56.      
  57.      
  58.    
  59.     GestorParcialesCobrados.obtenerInstancia().modificarEntidad(GestorAccesoJDBC.obtenerInstancia().getConexion(),pc);

Cita:
Error al realizar UPDATE sobre la tabla ParcialesCobrados
java.sql.SQLException: Índice de columna no válido
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:208)
at oracle.jdbc.driver.OraclePreparedStatement.setStri ngInternal(OraclePreparedStatement.java:5404)
at oracle.jdbc.driver.OraclePreparedStatement.setStri ng(OraclePreparedStatement.java:5396)
at eci.gestionCartaCompra.sistema.GestorParcialesCobr ados.modificarEntidad(GestorParcialesCobrados.java :250)
at eci.gestionCartaCompra.sistema.GestorParcialesCobr ados.main(GestorParcialesCobrados.java:833)
Exception in thread "main" java.sql.SQLException
at eci.gestionCartaCompra.sistema.GestorParcialesCobr ados.modificarEntidad(GestorParcialesCobrados.java :264)
at eci.gestionCartaCompra.sistema.GestorParcialesCobr ados.main(GestorParcialesCobrados.java:833)


La cuestion es que quiero hacer un update, y me indica qe el indice de la columna no es valido, y estoy seguro que si porque el insert lo hace igual con lo de los indices y no me da problema,


Gracias de antemano

Última edición por gnzsoloyo; 11/07/2013 a las 07:57 Razón: Te faltaba etiquetar...