sql >> Database >  >> RDS >> Oracle

Nieuwe fout in spring boot 2.3.0.RELEASE:UnfinishedDependencyException voor Oracle 12.2.0.1 jdbcdriver maar niet met mysql jdbcdriver

De JDBC Driver doet het prima.

Zoals je al hebt geleerd in de opmerkingen, is het probleem dat

a) Spring Data JDBC vereist nu een Dialect voor elke database

b) Spring Data JDBC wordt niet geleverd met een Dialect voor Oracle.

De oplossing:

Zoals beschreven in Spring Data JDBC Firebird dialect niet herkend en in https://spring .io/blog/2020/05/20/migreren-naar-spring-data-jdbc-2-0 je moet je eigen Dialect opgeven implementatie nu.

Iets als dit zou moeten werken:

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

}

U moet dan het Dialect . maken beschikbaar via een DialectProvider zoals beschreven in de Stackoverflow-vraag waarnaar wordt verwezen:

Enige achtergrond:

Tot nu toe heeft het Spring Data-team hun integratietests met een Oracle-database niet uitgevoerd. Dit komt omdat het geruime tijd onduidelijk was hoe dat op een legale manier moest worden gedaan, aangezien alle code inclusief de build-infrastructuur open source was en Oracle vereiste acceptatie van allerlei dingen om een ​​database-instantie of hun stuurprogramma te gebruiken.

Inmiddels zijn Docker-images beschikbaar om te testen en is het JDBC-stuurprogramma beschikbaar via Maven Central. Het is nog steeds een beetje lastig omdat de huidige opties voor docker-images die ik ken, je laten kiezen tussen een afbeeldingsgrootte van vele GB's of een opstarttijd van ongeveer 15 minuten.

Hoe dan ook, er is een communitylid aan het werk:https://jira.spring.io/ bladeren/DATAJDBC-256

Ik heb er dan ook alle vertrouwen in dat we Oracle in de nabije toekomst volledig kunnen ondersteunen.



  1. selecteer som tot een bepaald bedrag en werk vervolgens bepaalde velden bij op basis van voorwaarde

  2. SQL-query om te controleren of een naam begint en eindigt met een klinker

  3. Is er een manier om automatisch een trigger te maken bij het maken van een nieuwe tabel in MySQL?

  4. Sommige ELKE geaggregeerde transformaties zijn verbroken