sql >> Base de Datos >  >> RDS >> Oracle

Problema de inserción de .nextval JDBC

El problema es que la primera columna es un tipo de datos numérico, pero su declaración preparada envía un tipo de datos de cadena/VARCHAR. La instrucción se ejecuta tal cual, Oracle no tiene oportunidad de convertir su uso de nextval para obtener el valor de la secuencia.

Aquí hay una alternativa a través de la sintaxis de PreparedStatement de Java:

sql = "INSERT INTO USER 
        (USER_PK, ACCOUNTNUMBER, FIRSTNAME, LASTNAME, EMAIL ) 
       VALUES 
        (user.nextval, ?, ?, ?, ?)";
ps = conn.prepareStatement(sql);
ps.setString(1, accountNumber);
ps.setString(2, firstName);
ps.setString(3, lastName);
ps.setString(4, email);

Esto supone que user es una secuencia existente; cámbiela para adaptarla.