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

Oracle NUMBER का स्केल प्रेसिजन से बड़ा कैसे हो सकता है?

Oracle दस्तावेज़ीकरण के अनुसार:

मैं इसे इस तरह देखता हूं:

  • जब Precision स्केल से बड़ा है (जैसे NUMBER(8,5) ), कोई बात नहीं, यह सीधा है। Precision इसका मतलब है कि संख्या में कुल 8 अंक होंगे, जिनमें से 5 भिन्नात्मक भाग (.→) में हैं, इसलिए पूर्णांक भाग (←.) में 3 अंक होंगे। यह आसान है।
  • जब आप देखते हैं कि Precision Scale . से छोटा है (जैसे NUMBER(2, 5) ), इसका मतलब 3 चीजें हैं:

    • संख्या का कोई पूर्णांक भाग नहीं होगा, केवल भिन्नात्मक भाग होगा। तो पूर्णांक भाग में 0 की गणना गणना में नहीं की जाती है, आप कहते हैं .12345 0.12345 नहीं। वास्तव में, यदि आप पूर्णांक भाग में केवल 1 अंक निर्दिष्ट करते हैं, तो यह हमेशा एक त्रुटि लौटाएगा।
    • Scale भिन्नात्मक भाग में अंकों की कुल संख्या का प्रतिनिधित्व करता है जो संख्या होगी। इस मामले में 5. तो यह .12345 या .00098 हो सकता है लेकिन कुल मिलाकर 5 अंकों से अधिक नहीं हो सकता।
    • आंशिक भाग को 2 भागों में बांटा गया है, महत्वपूर्ण संख्याएं और शून्य। महत्वपूर्ण संख्याएं Precision . द्वारा निर्दिष्ट की जाती हैं , और शून्य की न्यूनतम संख्या बराबर होती है (Scale - Precision ) उदाहरण :

    यहाँ संख्या में भिन्नात्मक भाग में न्यूनतम 3 शून्य होना चाहिए। उसके बाद 2 महत्वपूर्ण संख्याएँ (शून्य भी हो सकती हैं)। तो 3 शून्य + 2 महत्वपूर्ण संख्याएं =5 जो कि Scale है नंबर।

संक्षेप में, जब आप उदाहरण के लिए देखते हैं NUMBER(6,9) , यह हमें बताता है कि भिन्नात्मक भाग में कुल 9 अंक होंगे, जो अनिवार्य 3 शून्य से शुरू होगा और उसके बाद 6 अंक होंगे।

यहां कुछ उदाहरण दिए गए हैं:

SELECT CAST(.0000123 AS NUMBER(6,9)) FROM dual;   -- prints: 0.0000123; .000|012300
SELECT CAST(.000012345 AS NUMBER(6,9)) FROM dual; -- prints: 0.0000123; .000|012345
SELECT CAST(.123456 AS NUMBER(3,4)) FROM dual;    -- ERROR! must have a 1 zero (4-3=1)
SELECT CAST(.013579 AS NUMBER(3,4)) FROM dual;    -- prints: 0.0136; max 4 digits, .013579 rounded to .0136


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं डेटाबेस में विदेशी कुंजी बना सकता हूं?

  2. दो तिथियों के बीच कवरेज वाले कर्मचारियों को खोजने का अधिक कुशल तरीका

  3. Oracle में SYSDATE फ़ंक्शन

  4. Oracle SQL लिखने के लिए एक गुणवत्ता विकास वातावरण क्या है?

  5. Oracle 10g में पिवट/क्रॉसस्टैब क्वेरी (डायनामिक कॉलम नंबर)