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

Apache Dbutils thay đổi tên cột trong bản cập nhật Sql

Tôi đã có một vấn đề tương tự. Tôi nghĩ rằng đó là một lỗi trong Trình điều khiển Oracle JDBC 7 (ojdbc7.jar). Lỗi có thể nằm trong phương thức PreparedStatement.getParameterMetaData.

Phương pháp này được sử dụng nội bộ bởi Apache DBUtils. Vì vậy, nó sẽ không phải là lỗi của DBUtils, mà là lỗi từ trình điều khiển Oracle JDBC được phân phối với Oracle 12c.

Truy vấn tương tự có thể sẽ hoạt động tốt nếu bạn sử dụng trình điều khiển Oracle 11g ojdbc6.jar. Ít nhất nó cũng hiệu quả với tôi.

Nếu bạn muốn xem Truy vấn bị trình điều khiển ojdbc7.jar Oracle xử lý sai như thế nào, bạn có thể sử dụng phương thức chính có trong lớp oracle.jdbc.driver.OracleParameterMetaDataParser. Hãy thử điều này:

ví dụ:

Đầu ra là Câu SQL của bạn được phân tích cú pháp và chuyển đổi thành Truy vấn SQL được trình điều khiển sử dụng nội bộ để xác định các kiểu dữ liệu tham số:

Nhưng như bạn có thể thấy trong mẫu, FIRSTNAME được phân tích cú pháp sai giống như "F".

Sử dụng một trong các Truy vấn bạn đặt trong câu hỏi của mình, kết quả là một trong các tham số vừa biến mất ... vì vậy trình phân tích cú pháp cho biết tham số "5" nhưng Truy vấn nội bộ được sử dụng để lấy các kiểu dữ liệu thực sự chỉ có "4" (HUMIDITY có đi từ CHỌN).

đầu ra:

Làm thế nào để sửa chữa? Không có ý kiến, nhưng như tôi đã nói ở trên, bằng cách sử dụng trình điều khiển Oracle 11g ojdbc6.jar, cùng một truy vấn hoạt động (thậm chí kết nối với cơ sở dữ liệu Oracle 12c ...).

Hành vi là khá ngẫu nhiên. Có vẻ như nó phụ thuộc vào chữ cái đầu tiên của cột được sử dụng trong CẬP NHẬT. Nếu nó bắt đầu bằng F và H luôn không thành công, nhưng tôi không biết liệu có điều kiện nào khác không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thực thi truy vấn chậm trong một bảng trống. (sau khi xóa một lượng lớn phụ trang)

  2. Tạo bảng tạm thời Oracle với cấu trúc bảng giống cấu trúc bảng hiện có

  3. cố gắng xuất mã nguồn java từ cơ sở dữ liệu Oracle

  4. PL / SQL:chuyển đổi con trỏ rõ ràng thành con trỏ tham chiếu?

  5. Filehelpers Excel sang Oracle db