sql >> Database >  >> RDS >> Oracle

.nextval JDBC invoegprobleem

Het probleem is dat de eerste kolom een ​​numeriek gegevenstype is, maar uw voorbereide instructie levert een string/VARCHAR-gegevenstype op. Het statement wordt uitgevoerd zoals het is, er is geen mogelijkheid voor Oracle om uw gebruik van nextval te converteren om de reekswaarde te krijgen.

Hier is een alternatief via Java's PreparedStatement-syntaxis:

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);

Dit veronderstelt dat user is een bestaande reeks -- wijzig deze naar wens.




  1. Gegevens ophalen van cursor in Oracle met For Loop

  2. MySQL dynamische draaitabel

  3. Hoe phpMyAdmin te installeren

  4. Uren aftrekken van de nu() functie