Oracle
 sql >> Database >  >> RDS >> Oracle

.problema di inserimento JDBC successivo

Il problema è che la prima colonna è un tipo di dati numerico, ma l'istruzione preparata sta inviando un tipo di dati string/VARCHAR. L'istruzione viene eseguita così com'è, non c'è alcuna possibilità per Oracle di convertire l'uso di nextval per ottenere il valore della sequenza.

Ecco un'alternativa tramite la sintassi PreparedStatement di 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);

Ciò presuppone che user è una sequenza esistente -- cambia per adattarla.