"Gather Schema Statistics"-programmet rapporterade följande fel i förfrågningsloggfiler:
Fel #1:FEL:Medan GATHER_TABLE_STATS:object_name=GL.JE_BE_LINE_TYPE_MAP***ORA-20001:ogiltigt kolumnnamn eller dubbletter av kolumner/kolumngrupper/uttryck i method_opt***Fel #2:FEL:Medan GASTARS_TABLE_name_name =GL.JE_BE_LOGS***ORA-20001:ogiltigt kolumnnamn eller dubbletter av kolumner/kolumngrupper/uttryck i method_opt***Fel #3:FEL:Medan GATHER_TABLE_STATS:object_name=GL.JE_BE_VAT_REP_RULES***ORA-20001:ogiltig kolumn namn eller dubbletter av kolumner/kolumngrupper/uttryck i method_opt***Fel #4:FEL:Medan GATHER_TABLE_STATS:object_name=FII.FII_FIN_ITEM_HIERARCHIES***ORA-20001:ogiltigt kolumnnamn eller dubbletter av kolumner/kolumngrupper/uttryck** i method_opt** *
Detta inträffade om det finns dubbletter eller ogiltiga kolumner i FND_HISTOGRAMS_COL
(1 ) Det finns dubbletter av rader i tabellen FND_HISTOGRAM_COLS för tabellen JE_BE_LINE_TYPE_MAP. På grund av detta problem försöker FND_STATS samla in histograminformation med fel kommando och det misslyckas med ORA-20001-fel.
Följande SQL bör returnera en rad, inte två:
SQL>välj kolumnnamn, nvl(hsize,254) hsizefrån FND_HISTOGRAM_COLSdär tabellnamn ='JE_BE_LINE_TYPE_MAP'ordning efter kolumnnamn;COLUMN_NAME HSIZE------------------------------ ------- ----------KÄLLA 254KÄLLA 254
Eftersom det finns två rader i histogramtabellen, skapar FND_STATS följande kommando för att samla statistik om tabellen 'JE_BE_LINE_TYPE_MAP':
dbms_Stats.gather_table_stats(OWNNAME => 'GL', TABNAME=>'JE_BE_LINE_TYPE_MAP',METHOD_OPT=>'FÖR ALLA KOLUMNER STORLEK 1 FÖR KOLUMNER KÄLLSTORLEK 254 FORCOLUMNS KÄLLA STORLEK );2>Kommandot ovan fungerar på 9i- och 10G-databaser men det kommer att misslyckas med ora-20001-fel på 11G.
(2) Kolumnen finns inte i tabellen men är fortfarande listad i tabellen FND_HISTOGRAMS_COL.
Du kan använda följande SQL för att identifiera. SQL kommer att fråga efter tabellnamnet, använd tabellnamnet från felen. I exemplen ovan kan du använda FII_FIN_ITEM_HIERARCHIES.
välj hc.table_name, hc.column_namefrom FND_HISTOGRAM_COLS hc , dba_tab_columns tcwhere hc.table_name ='&TABLE_NAME'och hc.table_name=tc.table_name (+)och hc.tc.column_name is_column_name is_ null;Ta reda på alla dubbletter och/eller föråldrade rader i FND_HISTOGRAM_COLS och ta bort en av dem. Kom ihåg att ta en säkerhetskopia av tabellen FND_HISTOGRAM_COLS innan du raderar data.
— identifiera dubbletter av radervälj tabellnamn, kolumnnamn, count(*) från FND_HISTOGRAM_COLSgrupp efter tabellnamn, kolumnnamn som har count(*)> 1;— Använd ovanstående resultat på följande SQL för att ta bort dubbletter
ta bort från FND_HISTOGRAM_COLSdär table_name ='&TABLE_NAME'och column_name ='&COLUMN_NAME'och rownum=1;— Använd följande SQL för att ta bort föråldrade rader
ta bort från FND_HISTOGRAM_COLSdär (tabellnamn, kolumnnamn) i(välj hc.tabellnamn, hc.kolumnnamnfrån FND_HISTOGRAM_COLS hc , dba_tab_kolumner tcdär hc.tabell_namn ='&TABLE_able_um_name.tc.tabel_namn)och hct_name=tc.tct_name .column_name (+) och tc.column_name är null);Läser också
ORA-00900 :Ogiltig SQL-sats
ORA-03113
ora-29283:ogiltig filoperation
ORA-29285:filskrivfel
ORA-00054