2009-09-07 22 views
6

में कनवर्ट करें मेरे द्वारा विकसित अनुप्रयोगों में से एक ग्राहक की साइट पर स्थानीय रूप से स्थापित हो जाता है। इसका मतलब है कि हमें MySQL, MSSQL और Oracle का समर्थन करना है क्योंकि सभी ग्राहक समान डेटाबेस इंजन का उपयोग नहीं करते हैं।एमएस एसक्यूएल स्क्रिप्ट को माइस्क्ल और ओरेकल

मैं एप्लिकेशन के लिए एक पैच लिख रहा हूं, जिसमें से एक डेटाबेस में संशोधन करने के लिए 5000 लाइन एसक्यूएल स्क्रिप्ट निष्पादित करना शामिल है। स्क्रिप्ट एमएसएसएलएल सिंटैक्स का उपयोग करके लिखी गई है, हालांकि मैं सोच रहा था कि मैन्युअल रूप से इसे करने से बचाने के लिए ओएसकल और/या MySQL के एमएसएसएलएल सिंटैक्स को स्वचालित रूप से परिवर्तित करने के लिए कोई एप्लिकेशन है या नहीं।

+2

सवाल यह है: क्या आप अपने 'उत्पादन' डेटाबेस को स्वचालित रूप से जेनरेट की गई स्क्रिप्ट के साथ भरोसा करेंगे ... –

+0

यदि यह क्यूए की परीक्षण प्रक्रियाओं को पारित करता है। – user169743

+0

आपके पास क्यूए है? सौभाग्यशाली। :) – JRadness

उत्तर

0

मैं एप्लिकेशन के लिए एक पैच लिख रहा हूं, जिसमें से एक डेटाबेस में संशोधन करने के लिए 5000 लाइन एसक्यूएल स्क्रिप्ट निष्पादित करना शामिल है। स्क्रिप्ट MSSQL सिंटैक्स का उपयोग करके लिखी गई है, हालांकि मैं सोच रहा था कि MSSQL सिंटैक्स को स्वचालित रूप से Oracle और/या MySQL में कनवर्ट करने के लिए कोई एप्लिकेशन है जो मुझे मैन्युअल रूप से करने के लिए सहेजने के लिए है।

यह शायद ही संभव है।

SQL का सामान्य सबसेट इन सभी सिस्टम समर्थन काफी कम है।

चूंकि आपके पास अपनी स्क्रिप्ट में कोड की 5000 लाइनें हैं, इसलिए शायद यह इस सबसेट से बाहर है।

सबसे बुरा हिस्सा यह है कि यह आमतौर पर सिंटैक्स अंतर नहीं बल्कि बल्कि प्रमुख वैचारिक हैं।

  • Oracle, उदाहरण के लिए, MERGE बयान है जिसमें डालने, हटाने और किसी एक क्वेरी में अद्यतन करने की अनुमति देता है समर्थन करता है।

    न तो SQL Server 2005 और न ही MySQL समर्थन एक।

  • MySQL एक साथ कई तालिकाओं से हटने का समर्थन करता है: Oracle या SQL Server में उपलब्ध नहीं है।

  • SQL Server, Oracle और MySQL के विपरीत, CTE की कि विश्लेषणात्मक कार्यों का उपयोग अद्यतन कर सकते हैं।

1

और भी अधिक के विषय में है कि डेटाबेस अलग ताला तंत्र का समर्थन है, तो आप वहाँ में कुछ टेबल्स और सूचियों को प्राप्त करने में सक्षम हो सकता है, लेकिन आप कुछ मुद्दों है कि डिबग करने के लिए बहुत मुश्किल हो जाता परिचय हो सकता है/दोहराने जब आप इसे जंगली में उजागर करें।

आपको उस बहुत से सॉर्ट करने के लिए 3 विशेषज्ञों की आवश्यकता है - प्रत्येक SQL सर्वर, MySQL और Oracle में से प्रत्येक। खराब प्रदर्शन और बहुत ही औसत डेटाबेस तंत्र के साथ, या आपके डेटाबेस को अधिकतम एक उपयोगकर्ता के साथ चलाने की आवश्यकता है।

क्षमा करें ...

+0

मजाकिया क्योंकि यह केवल एक उपयोगकर्ता (एप्लिकेशन) द्वारा उपयोग किया जाता है और निष्पादित आदेशों में से कोई भी बहुत सरल है, यह केवल दृढ़ता परत के रूप में कार्य करता है। – user169743

1

मैं एक डेटाबेस इंजन प्रोग्रामिंग वाक्य रचना कनवर्टर का पता नहीं है। हालांकि, चूंकि आप एक बहु-डेटाबेस मंच पर काम कर रहे हैं, इसलिए मैं एंटरप्राइज़ लाइब्रेरी और उसके एप्लिकेशन ब्लॉक का उपयोग करने पर विचार करूंगा। यह आपको सिरदर्द बचाएगा, आपको मेरा विश्वास करना होगा!

मुझे पता है कि आपके पास आने वाली रिलीज के लिए पर्याप्त समय नहीं है, इसलिए आपको स्क्रिप्ट मैन्युअल रूप से सेट करना होगा, लेकिन स्वयं को एक एहसान दें, और माइक्रोसॉफ्ट एंटरप्राइज़ लाइब्रेरी का उपयोग करने पर विचार करें।

एक और संभावित तरीका इन इंजनों को एक-दूसरे के साथ जितना संभव हो सके उतना करीब लाने के लिए है ताकि आप उनमें से तीनों के साथ अधिक आसानी से काम कर सकें। इस प्रकार, यह आपको विश्लेषण करने और यह तय करने की आवश्यकता है कि कौन सा कार्य बनाया जाना चाहिए और क्यों? यह गंभीरता से कड़ी मेहनत है।

अपने अनुभव में, अब मैं कम से कम डेटा एप्लिकेशन ब्लॉक (डीएएबी) एंटरप्राइज़ लाइब्रेरी के बिना विकसित नहीं हूं।

यहाँ लिंक:

  1. http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en
  2. http://www.codeplex.com/entlib

यदि यह आप में मदद मिली मुझे जानते हैं। यदि आपको एंटरप्राइज़ लाइब्रेरी के साथ अपनी डेटा एक्सेस परत सेट अप करने के लिए और सहायता की आवश्यकता है, तो मुझे बताएं।

संपादित 2015.01.16

इन दिनों एक और सबसे अच्छा तरीका है जैसे कि ये या तो NHibernate, Entity Framework या अन्य ORM उपकरणों का इस्तेमाल होता है।

उनके साथ, अब किसी भी SQL स्क्रिप्ट की आवश्यकता नहीं है, आपके आरडीबीएमएस कॉन्फ़िगरेशन के आधार पर आपके लिए सभी उत्पन्न होते हैं।

2

ओरेकल में रूपांतरण के लिए आप Migration Workbench पर आज़मा सकते हैं।

+0

आपका लिंक मर चुका है। कृपया इसे अपडेट करें। –

+0

या, आप जानते हैं, आप इसे अपडेट कर सकते हैं ... आपके पास पर्याप्त प्रतिष्ठा है। –

+0

क्योंकि मैं वही खोज रहा हूं :) –

4

यह एक पुराना विषय है, लेकिन मैं निम्नलिखित टूल का उपयोग करने की अनुशंसा करता हूं: http://www.sqlines.com/online। इसका उपयोग करके मुझे अच्छा अनुभव था। 3 महीने पहले से कोई समस्या नहीं मिली (जब मैंने इसका उपयोग शुरू कर दिया है)।

संबंधित मुद्दे