Oracle
 sql >> Baza danych >  >> RDS >> Oracle

.nextval problem z wstawianiem JDBC

Problem polega na tym, że pierwsza kolumna jest typem danych liczbowych, ale przygotowana instrukcja przesyła typ danych typu string/VARCHAR. Instrukcja jest uruchamiana bez zmian, Oracle nie ma możliwości przekonwertowania użycia nextval w celu uzyskania wartości sekwencji.

Oto alternatywa za pomocą składni PreparedStatement Javy:

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

Zakłada się, że user to istniejąca sekwencja — zmień ją, aby dopasować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnica między Oracle IN a Exists?

  2. Błąd podczas konwertowania XML z kolumny CLOB do kolumny XMLType

  3. Jak sklonować użytkownika w Oracle

  4. Wywołaj funkcję pl/sql w javie?

  5. przekazanie nazwy tabeli jako parametru plsql