Program “Gather Schema Statistics” melaporkan kesalahan berikut dalam file log permintaan:
Error #1: ERROR: While GATHER_TABLE_STATS: object_name=GL.JE_BE_LINE_TYPE_MAP***ORA-20001: invalid column name or duplicate columns/column groups/expressions in method_opt*** Error #2: ERROR: While GATHER_TABLE_STATS: object_name=GL.JE_BE_LOGS***ORA-20001: invalid column name or duplicate columns/column groups/expressions in method_opt*** Error #3: ERROR: While GATHER_TABLE_STATS: object_name=GL.JE_BE_VAT_REP_RULES***ORA-20001: invalid column name or duplicate columns/column groups/expressions in method_opt*** Error #4: ERROR: While GATHER_TABLE_STATS: object_name=FII.FII_FIN_ITEM_HIERARCHIES***ORA-20001: invalid column name or duplicate columns/column groups/expressions in method_opt***
Ini terjadi jika ada kolom duplikat atau tidak valid di FND_HISTOGRAMS_COL
(1) Ada baris duplikat pada tabel FND_HISTOGRAM_COLS untuk tabel JE_BE_LINE_TYPE_MAP. Karena masalah ini, FND_STATS mencoba mengumpulkan informasi histogram menggunakan perintah yang salah dan gagal dengan kesalahan ORA-20001.
SQL berikut harus mengembalikan satu baris, bukan dua:
SQL>select column_name, nvl(hsize,254) hsize from FND_HISTOGRAM_COLS where table_name = 'JE_BE_LINE_TYPE_MAP' order by column_name; COLUMN_NAME HSIZE ------------------------------ ---------- SOURCE 254 SOURCE 254
Karena ada dua baris dalam tabel histogram, FND_STATS membuat perintah berikut untuk mengumpulkan statistik pada tabel ‘JE_BE_LINE_TYPE_MAP’ :
dbms_Stats.gather_table_stats(OWNNAME => 'GL', TABNAME =>'JE_BE_LINE_TYPE_MAP',METHOD_OPT=>'FOR ALL COLUMNS SIZE 1 FOR COLUMNS SOURCE SIZE 254 FOR COLUMNS SOURCE SIZE 254');
Perintah di atas akan bekerja pada database 9i dan 10G tetapi akan gagal dengan kesalahan ora-20001 pada 11G.
(2) Kolom tidak ada di tabel tetapi masih tercantum di tabel FND_HISTOGRAMS_COL.
Anda dapat menggunakan SQL berikut untuk mengidentifikasi. SQL akan meminta nama tabel, gunakan nama tabel dari kesalahan. Dalam contoh di atas, Anda dapat menggunakan FII_FIN_ITEM_HIERARCHIES.
select hc.table_name, hc.column_name from FND_HISTOGRAM_COLS hc , dba_tab_columns tc where hc.table_name ='&TABLE_NAME' and hc.table_name= tc.table_name (+) and hc.column_name = tc.column_name (+) and tc.column_name is null;
Cari tahu semua duplikat dan/atau baris usang di FND_HISTOGRAM_COLS dan hapus salah satunya. Ingatlah untuk membuat cadangan tabel FND_HISTOGRAM_COLS sebelum menghapus data apa pun.
— mengidentifikasi baris duplikat
select table_name, column_name, count(*) from FND_HISTOGRAM_COLS group by table_name, column_name having count(*) > 1;
— Gunakan hasil di atas pada SQL berikut untuk menghapus duplikat
delete from FND_HISTOGRAM_COLS where table_name = '&TABLE_NAME' and column_name = '&COLUMN_NAME' and rownum=1;
— Gunakan SQL berikut untuk menghapus baris usang
delete from FND_HISTOGRAM_COLS where (table_name, column_name) in ( select hc.table_name, hc.column_name from FND_HISTOGRAM_COLS hc , dba_tab_columns tc where hc.table_name ='&TABLE_NAME' and hc.table_name= tc.table_name (+) and hc.column_name = tc.column_name (+) and tc.column_name is null );
Juga Dibaca
ORA-00900 :Pernyataan Sql tidak valid
ORA-03113
ora-29283:operasi file tidak valid
ORA-29285:kesalahan penulisan file
ORA-00054