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

ORA-20001 R12 में 11g(FND_HISTOGRAM_COLS) पर स्कीमा आँकड़े एकत्र करें

"स्कीमा सांख्यिकी इकट्ठा करें" कार्यक्रम ने अनुरोध लॉग फाइलों में निम्नलिखित त्रुटियों की सूचना दी:

त्रुटि #1:त्रुटि:जबकि GATHER_TABLE_STATS:object_name=GL.JE_BE_LINE_TYPE_MAP****ORA-20001:अमान्य स्तंभ नाम या डुप्लिकेट कॉलम/कॉलम समूह/अभिव्यक्ति method_opt में***त्रुटि #2:त्रुटि:जबकि GATHER_TABLE_STATS:object_name =GL.JE_BE_LOGS***ORA-20001:अमान्य कॉलम नाम या डुप्लिकेट कॉलम/कॉलम ग्रुप/एक्सप्रेशन में method_opt***त्रुटि #3:त्रुटि:जबकि GATHER_TABLE_STATS:object_name=GL.JE_BE_VAT_REP_RULES**ORA-20001:अमान्य कॉलम मेथड_ऑप्ट में नाम या डुप्लीकेट कॉलम/कॉलम ग्रुप्स/एक्सप्रेशन *** त्रुटि # 4:त्रुटि:जबकि GATHER_TABLE_STATS:ऑब्जेक्ट_नाम =FII.FII_FIN_ITEM_HIERARCHIES *** ORA-20001:अमान्य कॉलम नाम या डुप्लिकेट कॉलम/कॉलम ग्रुप/एक्सप्रेशन मेथड_ऑप्ट में** **

FND_HISTOGRAMS_COL

. में डुप्लीकेट या अमान्य कॉलम होने पर ऐसा हुआ

(1) JE_BE_LINE_TYPE_MAP तालिका के लिए FND_HISTOGRAM_COLS तालिका में डुप्लिकेट पंक्तियाँ हैं। इस समस्या के कारण, FND_STATS गलत कमांड का उपयोग करके हिस्टोग्राम जानकारी एकत्र करने का प्रयास करता है और यह ORA-20001 त्रुटियों के साथ विफल हो जाता है।

निम्न SQL को एक पंक्ति लौटानी चाहिए, दो नहीं:

एसक्यूएल>कॉलम_नाम का चयन करें, एनवीएल(एचसाइज,254) एचसाइजFND_HISTOGRAM_COLSजहां टेबल_नाम ='JE_BE_LINE_TYPE_MAP' कॉलम_नाम से ऑर्डर करें;COLUMN_NAME HSIZE---------------------- -----------------स्रोत 254स्रोत 254

चूंकि हिस्टोग्राम तालिका में दो पंक्तियाँ हैं, FND_STATS तालिका 'JE_BE_LINE_TYPE_MAP' पर आंकड़े एकत्र करने के लिए निम्न आदेश बनाता है:

dbms_Stats.gather_table_stats(OWNNAME => 'GL', TABNAME=>'JE_BE_LINE_TYPE_MAP',METHOD_OPT=>'सभी कॉलम साइज 1 के लिए कॉलम सोर्स साइज 254 FORCOLUMNS SOURCE SIZE 254');

उपरोक्त आदेश 9i और 10G डेटाबेस पर काम करेगा लेकिन यह 11G पर ora-20001 त्रुटियों के साथ विफल हो जाएगा।

(2) कॉलम टेबल पर मौजूद नहीं है लेकिन फिर भी FND_HISTOGRAMS_COL टेबल में सूचीबद्ध है।

पहचानने के लिए आप निम्न SQL का उपयोग कर सकते हैं। SQL तालिका नाम के लिए संकेत देगा, त्रुटियों से तालिका नाम का उपयोग करें। उपरोक्त उदाहरणों में, आप FII_FIN_ITEM_HIERARCHIES का उपयोग कर सकते हैं।

FND_HISTOGRAM_COLS hc से hc.table_name, hc.column_name, dba_tab_columns tcजहाँ hc.table_name ='&TABLE_NAME' और hc.table_name=tc.table_name (+)और hc.column_name =tc.column (+) और tc.column_name =tc.column चुनें, चुनें शून्य;

FND_HISTOGRAM_COLS में सभी डुप्लिकेट और/या अप्रचलित पंक्तियों का पता लगाएं और उनमें से एक को हटा दें। किसी भी डेटा को हटाने से पहले FND_HISTOGRAM_COLS तालिका का बैकअप लेना याद रखें।
— डुप्लिकेट पंक्तियों की पहचान करें

FND_HISTOGRAM_COLS से टेबल_नाम, कॉलम_नाम, काउंट (*) चुनें टेबल_नाम के आधार पर, कॉलम_नाम की गिनती (*)> 1;

— डुप्लीकेट हटाने के लिए उपरोक्त परिणामों का उपयोग निम्न SQL पर करें

FND_HISTOGRAM_COLS से हटाएं जहां table_name ='&TABLE_NAME' और column_name ='&COLUMN_NAME' और rownum=1;

— अप्रचलित पंक्तियों को हटाने के लिए निम्न SQL का उपयोग करें

FND_HISTOGRAM_COLS से हटाएं(table_name, column_name) में (hc.table_name, hc.column_name from FND_HISTOGRAM_COLS hc , dba_tab_columns tcजहाँ hc.table_name ='&TABLE_NAME' और hc.table_name =hc.table_name' और hc.table_name =चुनें। .column_name (+)और tc.column_name रिक्त है);

यह भी पढ़ता है
ORA-00900 :अमान्य Sql कथन
ORA-03113
ora-29283:अमान्य फ़ाइल संचालन
ORA-29285:फ़ाइल लिखने में त्रुटि
ORA-00054


  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. मैं डायनामिक WHERE क्लॉज कैसे बना सकता हूं?

  3. ODP.NET प्रबंधित पुस्तकालय उपनाम को हल करता है, लेकिन 32-बिट पुस्तकालय करता है

  4. ऑरैकल में पहले से बनाई गई तालिका में ऑटोइनक्रिकमेंट

  5. JDBC बैच इंसर्ट अपवाद हैंडलिंग