Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nowy błąd w wiosennym rozruchu 2.3.0.RELEASE:UnsatisfiedDependencyException dla Oracle 12.2.0.1 jdbcdriver, ale nie z mysql jdbcdriver

Sterownik JDBC radzi sobie dobrze.

Jak już dowiedziałeś się w komentarzach, problem polega na tym, że

a) Spring Data JDBC wymaga teraz Dialect dla każdej bazy danych

b) Spring Data JDBC nie jest dostarczany z Dialect dla Oracle.

Poprawka:

Jak opisano w Nie rozpoznano dialektu Spring Data JDBC Firebird oraz w https://spring .io/blog/2020/05/20/migrating-to-spring-data-jdbc-2-0 musisz podać swój własny Dialect wdrożenie już teraz.

Coś takiego powinno działać:

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;
    }

}

Następnie musisz utworzyć Dialect dostępne za pośrednictwem DialectProvider jak opisano we wspomnianym pytaniu Stackoverflow:

Niektóre tło:

Jak dotąd zespół Spring Data nie przeprowadza testów integracji z bazą danych Oracle. To dlatego, że przez dłuższy czas nie było jasne, jak to zrobić w sposób legalny, ponieważ cały kod, w tym infrastruktura do budowania, był open source i Oracle wymagało akceptacji. wszelkiego rodzaju rzeczy do użycia instancji bazy danych lub jej sterownika.

Do tej pory obrazy Dockera są dostępne do testowania, a sterownik JDBC jest dostępny w Maven Central. Wciąż jest to trochę trudne, ponieważ obecne opcje obrazów dokowanych, o których wiem, pozwalają wybierać między rozmiarem obrazu wynoszącym wiele GB lub czasem uruchamiania wynoszącym około 15 minut.

W każdym razie nad problemem pracuje członek społeczności:https://jira.spring.io/ przeglądaj/DATAJDBC-256

Dlatego jestem przekonany, że w najbliższej przyszłości będziemy w stanie w pełni wspierać Oracle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pozbądź się zduplikowanych wartości z jednej kolumny w dwóch kolumnach wybierz

  2. Oracle SQL na ostatni dzień roboczy bieżącego miesiąca, w tym święta państwowe w Oracle

  3. Wyrocznia; limit wierszy na wartość kolumny

  4. Grupuj wiersze Zachowując porządek wartości

  5. Jaka jest różnica między odczytem niepowtarzalnym a odczytem fantomowym?