यदि आप Oracle में एक अंतराल शाब्दिक का उपयोग करने का प्रयास कर रहे हैं, लेकिन आपको "अंतराल की प्रमुख सटीकता बहुत छोटी है" त्रुटि मिलती रहती है, तो उम्मीद है कि इससे मदद मिलेगी।
त्रुटि
यहाँ त्रुटि का एक उदाहरण दिया गया है:
SELECT INTERVAL '125' YEAR
FROM DUAL;
परिणाम:
ORA-01873: the leading precision of the interval is too small 01873. 00000 - "the leading precision of the interval is too small" *Cause: The leading precision of the interval is too small to store the specified interval. *Action: Increase the leading precision of the interval or specify an interval with a smaller leading precision. Error at Line: 9 Column: 17
समाधान
यहां समस्या को ठीक करने का तरीका बताया गया है:
SELECT INTERVAL '125' YEAR(3)
FROM DUAL;
परिणाम:
+125-00
मैंने जो कुछ किया वह था (3)
YEAR
. तक खोजशब्द। यह 3 की सटीकता निर्दिष्ट करता है।
डिफ़ॉल्ट सटीकता 2 है, और इसलिए यदि हम उच्च परिशुद्धता निर्दिष्ट नहीं करते हैं, तो त्रुटि होती है।
आप 9 तक सटीकता प्रदान कर सकते हैं।
उदाहरण:
SELECT INTERVAL '123456789' YEAR(9)
FROM DUAL;
परिणाम:
+123456789-00
और यहाँ क्या होता है यदि हम संख्या को समान रखते हुए सटीकता को कम करते हैं:
SELECT INTERVAL '123456789' YEAR(5)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT INTERVAL '123456789' YEAR(5) FROM DUAL Error at Command Line : 1 Column : 17 Error report - SQL Error: ORA-01873: the leading precision of the interval is too small 01873. 00000 - "the leading precision of the interval is too small" *Cause: The leading precision of the interval is too small to store the specified interval. *Action: Increase the leading precision of the interval or specify an interval with a smaller leading precision.
पहले की तरह ही त्रुटि।
साथ ही, 9 से अधिक किसी भी चीज़ का परिणाम त्रुटि में होता है:
SELECT INTERVAL '123456789' YEAR(20)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT INTERVAL '123456789' YEAR(20) FROM DUAL Error at Command Line : 1 Column : 34 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.