2014-06-27 9 views
7

मैं विभाजन तालिका में जानकारी सम्मिलित करने का प्रयास कर रहा हूं, लेकिन मुझे नहीं पता कि मैं क्या गलत कर रहा हूं! मुझे इस त्रुटि दिखाएँ:ओरेकल विभाजन - त्रुटि ORA14400 - डाली गई विभाजन कुंजी किसी भी विभाजन के लिए मानचित्र नहीं है

1 PDIA_98_20091023 0 
2 PDIA_98_20091022 0 
3 PDIA_98_20091021 0 
4 PDIA_98_20091020 0 
5 PDIA_98_20091019 0 

कृपया मेरी मदद करो रु

+0

माध्यम से चला जाता आप विभाजन मौजूद नहीं है कि में पंक्तियां सम्मिलित करने के लिए कोशिश कर रहे हैं। क्या आपके पास डिफ़ॉल्ट विभाजन परिभाषित है? एक डिफ़ॉल्ट विभाजन बनाएं और यह निर्धारित करने के लिए कि क्या आपको किसी भी नए विभाजन की आवश्यकता है –

+0

@ user3249825 क्या आप मेरे अपडेट किए गए उत्तर को संदर्भित कर सकते हैं, यह निर्धारित करने के लिए अपने सम्मिलन कथन के बाद उस विभाजन में पंक्तियों की जांच करें? –

उत्तर

15
select partition_name,column_name,high_value,partition_position 
from ALL_TAB_PARTITIONS a , ALL_PART_KEY_COLUMNS b 
where table_name='YOUR_TABLE' and a.table_name = b.name; 

इस क्वेरी को सूचीबद्ध स्तंभ कुंजी और अनुमति के रूप में इस्तेमाल का नाम: ORA-14400: inserted partition key does not map to any partition "

तालिका dba_tab_partitions नीचे इस जानकारियां पता चलता मान लें। सुनिश्चित करें कि आप अनुमत मान (high_value) डालें। अन्यथा, यदि डिफ़ॉल्ट विभाजन परिभाषित किया गया है, तो यह वहां जाएगा।


संपादित करें:

मुझे लगता है, अपनी तालिका DDL इस तरह होगा।

CREATE TABLE HE0_DT_INF_INTERFAZ_MES 
    (
    COD_PAIS NUMBER, 
    FEC_DATA NUMBER, 
    INTERFAZ VARCHAR2(100) 
) 
    partition BY RANGE(COD_PAIS, FEC_DATA) 
    (
    PARTITION PDIA_98_20091023 VALUES LESS THAN (98,20091024) 
); 

जिसका मतलब है मैं कई कॉलम के साथ एक विभाजन जो समग्र रेंज (98,20091024) की तुलना में कम मूल्य रखती बनाया था;

है यही कारण है कि पहले COD_PAIS <= 98 और इसके अलावा FEC_DATA < 20091024

संयोजन और परिणाम:

98, 20091024  FAIL 
98, 20091023  PASS 
99, ********  FAIL 
97, ********  PASS 
< 98, ********  PASS 

तो नीचे INSERT ORA-14400 के साथ विफल रहता है; क्योंकि INSERT में (98,20091024)DDL में से एक के लिए समान लेकिन नहीं यह भी कम है।

SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ) 
            VALUES(98, 20091024, 'CTA'); 2 
INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ) 
      * 
ERROR at line 1: 
ORA-14400: inserted partition key does not map to any partition 

लेकिन, हम मैं प्रयास (, 20,091,024), यह

SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ) 
    2         VALUES(97, 20091024, 'CTA'); 

1 row created. 
संबंधित मुद्दे