"Gather Schema Statistics"-programmet rapporterede følgende fejl i anmodningslogfiler:
Fejl #1:FEJL:Mens GATHER_TABLE_STATS:object_name=GL.JE_BE_LINE_TYPE_MAP***ORA-20001:ugyldigt kolonnenavn eller dublerede kolonner/kolonnegrupper/udtryk i method_opt***Fejl #2:FEJL:Mens GASTARTS_TABLE_name_name =GL.JE_BE_LOGS***ORA-20001:ugyldigt kolonnenavn eller dublerede kolonner/kolonnegrupper/udtryk i method_opt***Fejl #3:FEJL:Mens GATHER_TABLE_STATS:object_name=GL.JE_BE_VAT_REP_RULES***ORA-20001:ugyldig kolonne navn eller dublerede kolonner/kolonnegrupper/udtryk i method_opt***Fejl #4:FEJL:Mens GATHER_TABLE_STATS:object_name=FII.FII_FIN_ITEM_HIERARCHIES***ORA-20001:ugyldigt kolonnenavn eller dublerede kolonner/kolonnegrupper/udtryk** i method_opt** *
Dette skete, hvis der er dublerede eller ugyldige kolonner i FND_HISTOGRAMS_COL
(1) Der er duplikerede rækker i tabellen FND_HISTOGRAM_COLS for tabellen JE_BE_LINE_TYPE_MAP. På grund af dette problem forsøger FND_STATS at indsamle histogramoplysninger ved hjælp af den forkerte kommando, og det mislykkes med ORA-20001-fejl.
Følgende SQL skal returnere én række, ikke to:
SQL>vælg kolonnenavn, nvl(hsize,254) hsizefra FND_HISTOGRAM_COLShvor tabelnavn ='JE_BE_LINE_TYPE_MAP'ordner efter kolonnenavn;COLUMN_NAME HSIZE------------------------------ ------- ----------KILDE 254KILDE 254
Da der er to rækker i histogramtabellen, opretter FND_STATS følgende kommando til at samle statistik på tabellen 'JE_BE_LINE_TYPE_MAP':
dbms_Stats.gather_table_stats(OWNNAME => 'GL', TABNAME=>'JE_BE_LINE_TYPE_MAP',METHOD_OPT=>'FOR ALLE KOLONNER STØRRELSE 1 FOR KOLONNER KILDESTØRRELSE 254 FORKOLONNER KILDESTØRRELSE );2>Ovenstående kommando vil virke på 9i- og 10G-databaser, men den vil mislykkes med ora-20001-fejl på 11G.
(2) Kolonne findes ikke i tabellen, men er stadig opført i tabellen FND_HISTOGRAMS_COL.
Du kan bruge følgende SQL til at identificere. SQL vil bede om tabelnavnet, brug tabelnavnet fra fejlene. I ovenstående eksempler kan du bruge FII_FIN_ITEM_HIERARCHIES.
vælg hc.table_name, hc.column_name fra FND_HISTOGRAM_COLS hc , dba_tab_columns tcwhere hc.table_name ='&TABLE_NAME'og hc.table_name=tc.table_name (+)og hc.tc.column_name is_column_name is_ null;Find ud af alle dubletter og/eller forældede rækker i FND_HISTOGRAM_COLS og slet en af dem. Husk at tage en sikkerhedskopi af FND_HISTOGRAM_COLS-tabellen, før du sletter data.
— identificer duplikerede rækkervælg tabelnavn, kolonnenavn, antal(*) fra FND_HISTOGRAM_COLS-gruppe efter tabelnavn, kolonnenavn, der har tæller(*)> 1;— Brug ovenstående resultater på følgende SQL til at slette dubletter
slet fra FND_HISTOGRAM_COLShvor table_name ='&TABLE_NAME'og column_name ='&COLUMN_NAME'og rownum=1;— Brug følgende SQL til at slette forældede rækker
slet fra FND_HISTOGRAM_COLShvor (tabelnavn, kolonnenavn) i(vælg hc.table_name, hc.column_namefrom FND_HISTOGRAM_COLS hc , dba_tab_columns tcwhere hc.table_name ='&TABLE_tabel_navn.tc.tabel_navn)og hct_navn=tct.tct_navn=og hct_navn .column_name (+)og tc.column_name er null);Læser også
ORA-00900:Ugyldig SQL-sætning
ORA-03113
ora-29283:ugyldig filoperation
ORA-29285:filskrivefejl
ORA-00054