Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

स्प्रिंग बूट 2.3.0 में नई त्रुटि। रिलीज:Oracle 12.2.0.1 jdbcdriver के लिए असंतुष्ट निर्भरता अपवाद लेकिन mysql jdbcdriver के साथ नहीं

JDBC ड्राइवर ठीक काम कर रहा है।

जैसा कि आप टिप्पणियों में पहले ही जान चुके हैं, समस्या यह है कि

a) स्प्रिंग डेटा JDBC को अब एक Dialect की आवश्यकता है प्रत्येक डेटाबेस के लिए

b) स्प्रिंग डेटा JDBC Dialect के साथ शिप नहीं करता है ओरेकल के लिए।

समाधान:

जैसा कि स्प्रिंग डेटा JDBC फायरबर्ड बोली को पहचाना नहीं गया में वर्णित है और https://spring में .io/blog/2020/05/20/migrating-to-spring-data-jdbc-2-0 आपको अपनी खुद की Dialect प्रदान करने की आवश्यकता है कार्यान्वयन अभी।

कुछ इस तरह काम करना चाहिए:

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

}

फिर आपको Dialect बनाना होगा DialectProvider . के माध्यम से उपलब्ध है जैसा कि संदर्भित स्टैक ओवरफ्लो प्रश्न में वर्णित है:

कुछ पृष्ठभूमि:

अब तक स्प्रिंग डेटा टीम ओरेकल डेटाबेस के साथ अपने एकीकरण परीक्षण नहीं चलाती है। ऐसा इसलिए है क्योंकि काफी समय से यह स्पष्ट नहीं था कि इसे कानूनी तरीके से कैसे किया जाए क्योंकि बिल्ड इंफ्रास्ट्रक्चर सहित सभी कोड ओपन सोर्स थे और ओरेकल को स्वीकार करने की आवश्यकता थी डेटाबेस इंस्टेंस या उनके ड्राइवर का उपयोग करने के लिए सभी प्रकार की सामग्री।

अब तक डॉकर चित्र परीक्षण के लिए उपलब्ध हैं और JDBC ड्राइवर मावेन सेंट्रल से उपलब्ध है। यह अभी भी थोड़ा मुश्किल है क्योंकि डॉकर छवियों के मौजूदा विकल्प के बारे में मुझे पता है कि आप कई जीबी के छवि आकार या लगभग 15 मिनट के स्टार्ट अप समय के बीच चयन कर सकते हैं।

वैसे भी इस मुद्दे पर काम करने वाला एक समुदाय सदस्य है:https://jira.spring.io/ ब्राउज़ करें/डेटाजेडीबीसी-256

इसलिए मुझे विश्वास है कि हम निकट भविष्य में 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. Oracle Autoincrement Functionality:11.2 में ट्रिगर या Oracle JDBC CallableStatement?

  2. Oracle SQL क्वेरी - पिछले सप्ताह (सोमवार-शनिवार) से डेटा प्राप्त करें

  3. आप ओएसएक्स हिम तेंदुए पर पर्ल डीबीडी ::ओरेकल कैसे स्थापित करते हैं 10.6

  4. स्प्रिंग JDBC कनेक्शन पूल और इनपुटस्ट्रीम परिणाम

  5. ROWID (ओरेकल) - इसके लिए कोई उपयोग?