ORA-39083: Object type TYPE failed to create with error: ORA-02304: invalid object identifier literal Failing sql is: CREATE TYPE "PIVAS_TAIZHOU"."OBJECTIDLIST" OID '55D573CC891E36AFE05011AC1D7F1C93' IS TABLE OF INTEGER; ORA-39083: Object type TYPE failed to create with error: ORA-02304: invalid object identifier literal Failing sql is: CREATE TYPE "PIVAS_TAIZHOU"."MIGR_REPORT_SUM_ROW" OID '55D573CC890336AFE05011AC1D7F1C93' AS OBJECT (LABEL VARCHAR2(50), SCHEMA_SUM NUMBER, TABLE_SUM NUMBER, INDEX_SUM NUMBER, CONSTRAINT_SUM NUMBER, VIEW_SUM NUMBER, TRIGGER_SUM NUMBER, SP_SUM NUMBER );
對於create type失敗,可在導入命令中末尾加上 transform=OID:Nsql
impdp test/test directory=dump_dir dumpfile=TZ_PIVAS_20190220.dmp logfile=TZ_PIVAS_20190220.log remap_schema=pivas:pivas_taizhou remap_tablespace=pivas:PIVAS_TAIZHOU table_exists_action=replace transform=OID:N
能夠參考下面的說明。數據庫
大意就是說若是TRANSFORM參數設置成OID=N,表示在imp的時候,新建立的表或這個類型會賦予新的OID,而不是dmp文件中包含的OID的值。可是這個參數的默認值是OID=Y,所以在進行Imp的時候,新建立的表或者type會賦予一樣的OID,若是是位於同一個數據庫上的不一樣schema,那就會形成OID衝突的問題,所以解決這個問題也很簡單,只須要在impdp的時候,顯示設置transform 參數爲OID=N既能夠了。ide