impdp導數據,出現ORA-39082 ORA-39083錯誤號,對象無法編譯
導入結束後可以通過編譯對象來嘗試:
alter view view_name compile;
如果報錯:
使用show errors定位問題所在源,是權限的問題還是dblink的問題;
如果是權限問題,說明之前創建用戶時沒有給足夠的用戶權限(主要是對一些表的讀權限)
主要查詢以下兩個視圖:dba_sys_privs,dba_role_privs
如果是dblink問題,建議使用 dbms_metadata.get_ddl查看dblink定義ddl,並嘗試重建db_link
接著繼續編譯對象。
查看對象定義ddl:
select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','USERNAME') from dual;
編譯無效對象:
view: alter view view_name compile;
function: alter function function_name compile;
sys用戶查看無效對象:
select owner,object_name,object_type,status
from dba_objects
where status !='VALID'
and owner not in ('SYS','SYSTEM')
/
show error 的用法:
編譯view出現問題:
alter view view_name compile;
Warning:view view_name with compilation errors.
SQL>show errors view view_name
Errors for view view_name:
LINE/COL ERROR
----------- -------------------------
0/0 ORA---