2008-09-02 28 views
7

पर डेवलपर चल रहा है हम घर में एक नई परियोजना ला रहे हैं और जबकि पहले हमारे सभी काम SQL सर्वर पर थे, नया उत्पाद ऑरैकल बैक एंड का उपयोग करता है।एसक्यूएल सर्वर से ओरेकल

क्या कोई भी किसी भी पालना शीट्स की सलाह दे सकता है या ऐसा कोई एसक्यूएल सर्वर व्यक्ति मेरे जैसे प्रमुख मतभेदों की एक रैंड डाउन देता है - जितनी जल्दी हो सके उठने और चलाने में सक्षम होना चाहते हैं।

+0

यह लिंक के बहुत सारे का एक उपयोगी सारांश प्रदान करता है मुख्य अंतर: [ऑरैकल और एमएस एसक्यूएल सर्वर के बीच मतभेद] (http://www.bristle.com/Tips/SQL.htm#differences_between_oracle_and_ms_sql_server) –

उत्तर

3

@hamishcmcn

आपका दावा है कि '' == अशक्त बस सच नहीं है। संबंधपरक दुनिया में नल को केवल "मुझे नहीं पता" के अर्थ में पढ़ा जाना चाहिए। ओलकल (और सबसे अन्य सभ्य डेटाबेस) से आपको एकमात्र नतीजा मिलेगा जब आप नल के मूल्य की तुलना करते हैं तो 'गलत' है।

मेरे सिर के ऊपर बंद एसक्यूएल सर्वर और Oracle के बीच प्रमुख अंतर हैं:

  • प्यार लेन-देन के बारे में जानें, वे अपने दोस्त हैं - ऑटो के लिए प्रतिबद्ध नहीं है।
  • पढ़ें स्थिरता और अवरुद्ध की कमी पढ़ता
  • एसक्यूएल सर्वर डाटाबेस == ओरेकल स्कीमा
  • PL/SQL एक बहुत अधिक सुविधा अमीर T-SQL से
  • एक उदाहरण और एक डेटाबेस बीच का अंतर जानें है ओरेकल
  • आप एक सर्वर
  • नहीं नुकीले clicky जादूगरों (जब तक आप वास्तव में, वास्तव में उन्हें चाहते हैं)

हर कोई पर एक से अधिक Oracle उदाहरण हो सकता है अन्यथा, कृपया मेरी मदद करें और और जोड़ें।

1

खाली स्ट्रिंग के तरीके के तरीके में अंतर के लिए देखें।
INSERT INTO atable (a_varchar_column) VALUES ('');

मुझे कोई sqlserver अनुभव है के रूप में

INSERT INTO atable (a_varchar_column) VALUES (NULL); 

ही है, लेकिन मैं समझता हूँ कि यह दो

2

के बीच मुख्य अंतर मैं एसक्यूएल सर्वर से Oracle करने के लिए आगे बढ़ रहा था में देखा differentiates ओरेकल में आपको चयन विवरणों में कर्सर का उपयोग करने की आवश्यकता है। इसके अलावा, अस्थायी तालिकाओं का अलग-अलग उपयोग किया जाता है। SQL सर्वर में आप एक प्रक्रिया में एक बना सकते हैं और उसके बाद इसे अंत में ड्रॉ कर सकते हैं, लेकिन ओरेकल में आपको पहले से ही प्रक्रिया निष्पादित होने से पहले एक अस्थायी तालिका बनाई जानी चाहिए।

मैं डेटाटाइप को भी देखता हूं क्योंकि वे काफी अलग हैं।

0

यदि आपको Execute Immediate कमांड का उपयोग करके प्रक्रियाओं में अस्थायी तालिकाओं को बना और छोड़ना है।

1

@hamishmcn

आम तौर पर है कि एक बुरा विचार .. ओरेकल में अस्थायी तालिकाओं अभी बनाया और छोड़ दिया जाना चाहिए है (जब तक कि इसकी एक एक बार बंद/बहुत मुश्किल से ही प्रयोग किया जाता)। अस्थायी तालिका की सामग्री प्रत्येक सत्र के लिए स्थानीय है और सत्र बंद होने पर छोटा कर दिया जाता है। अस्थायी तालिका बनाने/छोड़ने की लागत का भुगतान करने में थोड़ी सी बात है, यदि दो प्रक्रियाएं एक ही समय में तालिका बनाने की कोशिश करती हैं और डीडीएल प्रदर्शन से अप्रत्याशित काम करती हैं तो संघर्ष भी हो सकता है।

1

जो आपने यहां पूछा है वह एक बड़ा विषय है, खासकर जब आपने वास्तव में यह नहीं कहा है कि आप डेटाबेस का उपयोग कर रहे हैं (उदाहरण के लिए, क्या आप टीएसक्यूएल -> पीएल/एसक्यूएल से जा रहे हैं या बस बैकएंड बदल रहे हैं डेटाबेस आपके जावा एप्लिकेशन से जुड़ा हुआ है?)

यदि आप अपने डेटाबेस विकल्प का उपयोग करने के बारे में गंभीर हैं, तो मेरा सुझाव है कि आप थोड़ा गहरा खोदें और टॉम क्यटे द्वारा Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions जैसे कुछ पढ़ें।

0

andy47 के लिए, मेरा मतलब यह नहीं था कि आप उपयोग कर सकते हैं एक तुलना में खाली स्ट्रिंग, लेकिन अगर आप इसे किसी सम्मिलन में उपयोग करते हैं तो ऑरैकल इसे शून्य की तरह मानता है। फिर से पढ़ अपनी प्रविष्टि, उसके बाद निम्न एसक्यूएल का प्रयास करें:

CREATE TABLE atable (acol VARCHAR(10)); 
INsERT INTO atable VALUES(''); 
SELECT * FROM atable WHERE acol IS NULL; 

और एक "हाँ यह है, नहीं ऐसा नहीं है" स्थिति से बचने के, here is an external link

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