2009-12-15 7 views
5

का उपयोग करने का कारण ओरेकल पृष्ठभूमि के कुछ लोग पूर्णांक के लिए DECIMAL (31,0) का उपयोग कर रहे हैं। MySQL में यह कुशल नहीं है।DECIMAL (31,0)

उत्तर

4

ओरेकल संख्या (38)

अधिक जानकारी के लिए के लिए एक पर्याय के रूप में "पूर्णांक" एएनएसआई डेटाप्रकार लागू करता देख "Learn Oracle: Datatypes for SQL and PL/SQL, Numbers"

हालांकि, निम्न तालिका Oracle में डेटाप्रकार के बीच एक मैपिंग के रूप में इस्तेमाल किया जाना चाहिए और MySQL:

"Oracle® Database SQL Developer Supplementary Information for MySQL Migrations"

ओरेकल और MySQL तुलना में> डेटा प्रकार> तुलना डेटा प्रकार

मुख्य अंतर यह है here बताया गया है और here कि Oracle संख्या डेटाप्रकार चर लंबाई प्रारूप है, जबकि MySQL दशमलव (एन) represented as strings that require one byte per digit or sign character

(Oracle (संस्करण 5.0.3 से पहले) हुआ करता था डेटाप्रकार NUMBER डेटाटाइप) आंतरिक संख्यात्मक प्रारूप

ओरेकल डेटाबेस परिवर्तनीय-लंबाई प्रारूप में संख्यात्मक डेटा संग्रहीत करता है। प्रत्येक मान वैज्ञानिक नोटेशन में संग्रहीत है, 1 बाइट एक्सपोनेंट स्टोर करने के लिए एक्सपोनेंट और को 20 बाइट्स तक स्टोर करने के लिए उपयोग किया जाता है। परिणामी मान 38 सटीक के अंक तक सीमित है। ओरेकल डेटाबेस अग्रणी और पीछे शून्य स्टोर नहीं करता है। उदाहरण के लिए, संख्या 412 4.12 x 102 के प्रारूप में संग्रहीत है, जिसमें 1 बाइट एक्सपोनेंट (2) और 2 बाइट्स को स्टोर करने के लिए प्रयुक्त होता है, मंटिसा के तीन महत्वपूर्ण अंक (4,1 , 2)। नकारात्मक संख्या में उनकी लंबाई में साइन शामिल है।

इस खाते में स्तंभ आकार बाइट्स में एक विशेष सांख्यिक डेटा मान NUMBER (पी), जहां पी किसी दिए गए मूल्य का सटीक है के लिए कर सकते हैं विचार करते हुए, हो निम्नलिखित सूत्र का उपयोग कर की गणना:

ROUND((length(p)+s)/2))+1

जहां रों शून्य के बराबर है, तो संख्या सकारात्मक है, और एस 1 के बराबर होती है, तो संख्या नकारात्मक है।

शून्य और सकारात्मक और नकारात्मक अनंत (केवल Oracle डाटाबेस, संस्करण 5 से आयात पर उत्पन्न) अद्वितीय अभ्यावेदन का उपयोग करके संग्रहीत कर रहे हैं। शून्य और नकारात्मक अनंतता प्रत्येक को 1 बाइट की आवश्यकता होती है; सकारात्मक अनंत 2 बाइट की आवश्यकता है।

और

(MySQL) को दशमलव डेटा प्रकार परिवर्तन पूर्णांक और प्रत्येक मूल्य का आंशिक भागों के लिए

भंडारण आवश्यकताओं को अलग से निर्धारित होते हैं। प्रत्येक नौ अंकों में से कई को चार बाइट्स की आवश्यकता होती है, और पर शेष शेष अंक चार बाइट्स के कुछ अंश की आवश्यकता होती है। [...]

उदाहरण के लिए, एक दशमलव (18,9) स्तंभ दशमलव बिंदु के दोनों तरफ नौ अंक है, तो पूर्णांक भाग और आंशिक हिस्सा प्रत्येक चार बाइट्स की आवश्यकता है। एक डिसीमल (20,6) कॉलम में चौदह पूर्णांक अंक और छः आंशिक अंक हैं। पूर्णांक अंक को अंकों में से नौ के लिए चार बाइट्स और शेष पांच अंकों के लिए तीन बाइट की आवश्यकता होती है। छः आंशिक अंकों को तीन बाइट की आवश्यकता होती है।

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