आपके पास आगे बहुत काम है!
DB2 और Oracle के बीच, कुछ महत्वपूर्ण अंतर हैं (जो मैं सोच सकता हूं उसकी एक मनमानी गणना):
डेटा प्रकार
- संख्या डेटा प्रकार:DB2 में कई और मानक प्रकार हैं, जैसे
SMALLINT
,INTEGER
,DOUBLE
, आदि। वे Oracle SQL में मौजूद नहीं हैं (हालाँकि कुछ PL/SQL में मौजूद हैं)। यह डीडीएल के लिए और कास्टिंग और कुछ अन्य उपयोग के मामलों के लिए महत्वपूर्ण है, जैसे कि विधेय की शुद्धता - दिनांक डेटा प्रकार:Oracle का एकमात्र अंतर
DATE
. के बीच है औरTIMESTAMP
तथ्य यह है किTIMESTAMP
माइक्रोसेकंड है। लेकिनDATE
समय की जानकारी भी हो सकती है। DB2 में,DATE
मुझे लगता है कि समय की कोई जानकारी नहीं है। - चरित्र डेटा प्रकार:
VARCHAR
. के बीच अंतर के बारे में पढ़ें औरVARCHAR2
ओरेकल में NULL
. Oracle में,NULL
DB2 की तुलना में बहुत अधिक सामान्य है। DB2 v9.7 से पहले, आपकोNULL
cast डालना था किसी भी स्पष्ट प्रकार के लिए, उदा।cast(null as integer)
. Oracle में यह आवश्यक नहीं है।
सिस्टम ऑब्जेक्ट
SYSIBM.DUAL
बसDUAL
. बन जाता है- कार्य:वे सभी थोड़े अलग हैं। आपको केस दर केस जांचना होगा। उदाहरण के लिए,
LOCATE
हो जाता हैINSTR
वाक्यविन्यास
TRUNCATE IMMEDIATE
हो जाता हैTRUNCATE
EXCEPT
MINUS
becomes बन जाता है- DB2 का
FETCH FIRST n ROWS ONLY
:Oracle में ऐसा कोई खंड नहीं है। आपकोROWNUM
. का उपयोग करना होगा याROW_NUMBER() OVER()
फ़िल्टरिंग (इसे देखें उदाहरण ) - DB2 का
MERGE
यदि आप इसका उपयोग करते हैं, तो कथन Oracle की तुलना में अधिक शक्तिशाली है। - DB2 समर्थन करता है
INSERT INTO .. (..) VALUES (..), (..), (..)
. Oracle के साथ, आपकोINSERT INTO .. SELECT .. UNION ALL SELECT .. UNION ALL SELECT ..
लिखना होगा।
उन्नत
- यदि आप संग्रहीत कार्यविधियों का उपयोग करते हैं, तो वे कुछ अलग तरीके से काम करते हैं, विशेष रूप से उन्नत डेटा प्रकारों के साथ, लेकिन यह यहां दायरे से बाहर है।
इस पर आपका सबसे कुशल शॉट किसी प्रकार के SQL एब्स्ट्रैक्शन का उपयोग करना हो सकता है। यदि आप जावा का उपयोग कर रहे हैं, तो मैं आपको अपने SQL कथनों को jOOQ के साथ लपेटने की सलाह दूंगा। (अस्वीकरण:मैं jOOQ के पीछे कंपनी के लिए काम करता हूं)। jOOQ उपरोक्त सभी तथ्यों के लिए एपीआई-स्तरीय अमूर्तता प्रदान करता है। SQL का एक बड़ा सौदा अनुकूलन के बिना, DB2 और Oracle दोनों पर निष्पादित किया जा सकता है। हम एक अधिक स्वतंत्र अनुवादक उत्पाद पर भी काम कर रहे हैं:https://www.jooq.org/translate ए>
अमूर्तता के उच्च स्तर पर, हाइबरनेट (या अन्य जेपीए कार्यान्वयन) आपके लिए ऐसा ही कर सकते हैं