Проблемът е, че първата колона е числов тип данни, но подготвеното ви изявление изпраща тип данни низ/VARCHAR. Изявлението се изпълнява както е, няма възможност Oracle да преобразува вашата употреба на nextval, за да получи стойността на последователността.
Ето алтернатива чрез синтаксиса PreparedStatement на Java:
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);
Това предполага, че user
е съществуваща последователност -- променете според нуждите.