Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

.nextval JDBC chèn sự cố

Vấn đề là cột đầu tiên là kiểu dữ liệu số, nhưng câu lệnh đã chuẩn bị của bạn đang gửi kiểu dữ liệu chuỗi / VARCHAR. Câu lệnh được chạy nguyên trạng, không có cơ hội để Oracle chuyển đổi việc sử dụng nextval của bạn để lấy giá trị chuỗi.

Đây là một giải pháp thay thế thông qua cú pháp PreparedStatement của 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);

Điều này giả định rằng user là một trình tự hiện có - hãy thay đổi cho phù hợp.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm REPLACE () của Oracle không xử lý ký tự xuống dòng &nguồn cấp dữ liệu dòng

  2. Chuyển đổi các kết quả đã chọn với Oracle

  3. Oracle:Truy vấn SQL trả về các hàng chỉ có giá trị số

  4. Oracle:Chọn từ kiểu dữ liệu bản ghi

  5. Triển khai và cấu hình ODP.NET để hoạt động mà không cần cài đặt với Entity Framework