Data Pumpは外部表を使っている?
ふと気づくといつの間にかにET$から始まるテーブルができていました。調べてみるとData Pumpが動作する際外部表として一時的に作成され、終了すると自動で削除されるテーブルのようです。過去にimpdpを無理やりkillした事があったのでその際に残ってしまっていたのかもしれません、、
除外される表は次のとおりです(*ワイルドカードは任意のスキーマまたは文字を示します)。
“.AQ$“, // advanced queues
https://docs.oracle.com/cd/E74358_01/gg-winux/GIORA/GUID-BE4AFF36-96D6-4FF6-965E-C9C99B0F306B.htm
“.DR$$“, // oracle text “.M$$”, // Spatial index
“.MLOG$”, // materialized views
“.OGGQT$”,
“.OGG$”, // AQ OGG queue table
“.ET$”, // Data Pump external tables
“.RUPD$”, // materialized views
“.SYS_C”, // constraints
“.MDR$”, // Spatial Sequence and Table “.SYS_IMPORT_TABLE“, “.CMP$“, // space management, rdbms >= 12.1
“.DBMS_TABCOMP_TEMP_“, // space management, rdbms < 12.1
“.MDXT_$*” // Spatial extended statistics tables
DBA_EXTERNAL_TABLESを確認する
DBA_EXTERNAL_TABLESは外部表が定義されているビューです。こちらを確認するとET$で始まるテーブルも含まれていました。たしかにData Pumpで使われていそうです。今回は偶然にも、Data Pumpは外部表をつかってデータのロードしている事がわかりました。
SQL> set lin 200
SQL> COLUMN OWNER FORMAT A10
SQL> COLUMN TABLE_NAME FORMAT A20
SQL> COLUMN TYPE_NAME FORMAT A18
SQL> COLUMN DEFAULT_DIRECTORY_NAME FORMAT A18
SQL> COLUMN ACCESS_TYPE FORMAT A8
SQL> select t.OWNER,t.TABLE_NAME,t.TYPE_NAME,t.DEFAULT_DIRECTORY_NAME,t.ACCESS_TYPE
2 from DBA_EXTERNAL_TABLES t order by 1,2
3 ;
OWNER TABLE_NAME TYPE_NAME DEFAULT_DIRECTORY_ ACCESS_T
---------- -------------------- ------------------ ------------------ --------
SOONI ET$001417230001 ORACLE_DATAPUMP DUMP_DIR CLOB
SOONI EXT_ADDRESS_CHOME ORACLE_LOADER EXTABLES CLOB
SYS OPATCH_XML_INV ORACLE_LOADER OPATCH_SCRIPT_DIR CLOB
SQL>