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

Lỗi mới trong khởi động mùa xuân 2.3.0.RELEASE:UnsatisfiedDependencyException cho Oracle 12.2.0.1 jdbcdriver nhưng không phải với mysql jdbcdriver

Trình điều khiển JDBC hoạt động tốt.

Như bạn đã biết trong phần bình luận, vấn đề là

a) Spring Data JDBC hiện yêu cầu Dialect cho mỗi cơ sở dữ liệu

b) Dữ liệu mùa xuân JDBC không gửi cùng với Dialect cho Oracle.

Cách khắc phục:

Như được mô tả trong Phương ngữ JDBC Firebird của Spring Data không được công nhận và trong https:// spring .io / blog / 2020/05/20 / migrating-to-spring-data-jdbc-2-0 bạn cần cung cấp Dialect của riêng mình triển khai ngay bây giờ.

Một cái gì đó như thế này sẽ hoạt động:

class MyOracleDialect extends AnsiDialect {

    private static final LimitClause LIMIT_CLAUSE = new LimitClause() {

        @Override
        public String getLimit(long limit) {
            return String.format("FETCH NEXT %d ROWS ONLY", limit);
        }

        @Override
        public String getOffset(long offset) {
            return String.format("OFFSET %d ROWS", offset);
        }

        @Override
        public String getLimitOffset(long limit, long offset) {
            return String.format("OFFSET %d ROWS FETCH NEXT %d ROWS ONLY", offset, limit);
        }

        @Override
        public Position getClausePosition() {
            return Position.AFTER_ORDER_BY;
        }
    };

    @Override
    public LimitClause limit() {
        return LIMIT_CLAUSE;
    }

}

Sau đó, bạn cần thực hiện Dialect có sẵn qua DialectProvider như được mô tả trong câu hỏi Stackoverflow được tham chiếu:

Một số thông tin cơ bản:

Cho đến nay, nhóm Dữ liệu mùa xuân không chạy các bài kiểm tra tích hợp của họ với cơ sở dữ liệu Oracle. Điều này là do trong một thời gian khá dài, người ta không rõ cách thực hiện điều đó theo cách hợp pháp vì tất cả mã bao gồm cả cơ sở hạ tầng xây dựng đều là mã nguồn mở và Oracle yêu cầu chấp nhận tất cả các loại nội dung để sử dụng phiên bản cơ sở dữ liệu hoặc trình điều khiển của chúng.

Hiện tại, hình ảnh Docker đã có sẵn để thử nghiệm và trình điều khiển JDBC có sẵn từ Maven Central. Vẫn còn một chút khó khăn vì các tùy chọn hiện tại cho hình ảnh docker mà tôi biết cho phép bạn chọn giữa kích thước hình ảnh bao nhiêu GB hoặc thời gian khởi động khoảng 15 phút.

Dù sao cũng có một thành viên cộng đồng đang giải quyết vấn đề: https://jira.spring.io/ duyệt / DATAJDBC-256

Do đó, tôi tin tưởng rằng chúng tôi sẽ có thể hỗ trợ đầy đủ cho Oracle trong tương lai gần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truyền được chỉ định không hợp lệ khi điền DataTable từ OracleDataAdapter.Fill ()

  2. Dấu thời gian ngủ đông với múi giờ

  3. Oracle SQL tìm ký tự ¡trong dữ liệu

  4. Strugging với Spring SimpleJdbcCall để gọi hàm Oracle

  5. Làm thế nào để chỉ liệt kê các bảng tôi đã tạo trong Oracle SQL?