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

.nextval JDBC indsættelsesproblem

Problemet er, at den første kolonne er en numerisk datatype, men din forberedte erklæring indsender en streng/VARCHAR-datatype. Udsagnet køres som det er, der er ingen mulighed for Oracle at konvertere din brug af nextval for at få sekvensværdien.

Her er et alternativ via Javas PreparedStatement-syntaks:

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

Dette forudsætter, at user er en eksisterende sekvens -- skift til kulør.




  1. VÆLG FOR OPDATERING med SQL Server

  2. Datamaskering i DB-applikationer

  3. Hvordan man fremskynder indlæsning af data fra oracle sql til pandas df

  4. Installer og opret forbindelse til PostgreSQL 10 på Ubuntu 16.04