Masalahnya adalah kolom pertama adalah tipe data numerik, tetapi pernyataan yang Anda siapkan mengirimkan tipe data string/VARCHAR. Pernyataan dijalankan apa adanya, tidak ada peluang bagi Oracle untuk mengonversi penggunaan nextval Anda untuk mendapatkan nilai urutan.
Berikut adalah alternatif melalui sintaks 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);
Ini mengasumsikan bahwa user
adalah urutan yang sudah ada -- ubah agar sesuai.