sql >> Databáze >  >> RDS >> Oracle

.další problém s vložením JDBC

Problém je v tom, že první sloupec je číselný datový typ, ale váš připravený příkaz odesílá datový typ řetězec/VARCHAR. Příkaz je spuštěn tak, jak je, Oracle nemá příležitost převést vaše použití nextval na získání hodnoty sekvence.

Zde je alternativa prostřednictvím syntaxe Java's PreparedStatement:

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

To předpokládá, že user je existující sekvence -- změňte, aby vyhovovala.




  1. Snímky databáze SQL Server -2

  2. MariaDB CURRENT_ROLE() Vysvětleno

  3. Numerické funkce v Oracle (úplný seznam)

  4. SpringBoot+Kotlin+Postgres a JSONB:org.hibernate.MappingException:Žádné mapování dialektů pro typ JDBC