exclude和include參數能夠在使用expdp或impdp是對特定的對象或對象類型進行篩選或過濾。比如因工作的需要導出特定的表或不導出特定
的表、視圖以及存儲過程、索引、約束、授權統計信息等等。下面將給出expdp或impdp使用exclude和include參數的方法和示例。
一、exclude/include參數用法:
EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] -->排出特定對象
INCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] -->包含特定對象
object_type子句用於指定對象的類型,如table,sequence,view,procedure,package等等
name_clause子句可以為SQL表達式用於過濾特定的對象名字。它由SQL操作符以及對象名(可使用通配符)來過濾指定對象類型中的特定對象。
當未指定name_clause而僅僅指定object_type則所有該類型的對象都將被過濾或篩選。多個[object_type]:[name_clause]中間以逗號分割。
示例:
expdp <other_parameters> SCHEMAS=scott EXCLUDE=SEQUENCE,TABLE:"IN ('EMP','DEPT')"
impdp <other_parameters> SCHEMAS=scott INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"
二、常用的過濾SQL表達式
EXCLUDE=SEQUENCE,VIEW --過濾所有的SEQUENCE,VIEW
EXCLUDE=TABLE:"IN ('EMP','DEPT')" --過濾表對象EMP,DEPT
EXCLUDE=SEQUENCE,VIEW,TABLE:"IN ('EMP','DEPT')" --過濾所有的SEQUENCE,VIEW以及表對象EMP,DEPT
EXCLUDE=INDEX:"= 'INDX_NAME'" --過濾指定的索引對象INDX_NAME
INCLUDE=PROCEDURE:"LIKE 'PROC_U%'" --包含以PROC_U開頭的所有存儲過程(_ 符號代表任意單個字符)
INCLUDE=TABLE:"> 'E' " --包含大於字符E的所有表對象
三、命令行下轉義符的處理
Windows平台:
D:\> expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott
INCLUDE=TABLE:\"IN ('EMP', 'DEPT')\"
在Windows平台下,需要對象雙引號進行轉義,使用轉義符\
Unix平台:
在未使用parfile文件的情形下,所有的符號都需要進行轉義,包括括號,雙引號,單引號等
% expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott
INCLUDE=TABLE:\"IN \'EMP\',\'DEP\'\'EMP\',\'DEP\'\"