采用rowid方式分段,但是发现impdp的query条件都可行,但是采用dbms_datapump过程方式每次都是全表泵入,没有按照subquery的条件,分析中,大神路过的顺便看看回复个,谢谢
附注:
测试后台
```CREATE OR REPLACE PROCEDURE EXPDP_ IS
H1 NUMBER;
BEGIN
H1 := DBMS_DATAPUMP.OPEN(OPERATION => 'IMPORT',
JOB_MODE => 'table',
REMOTE_LINK => 'TO210');
DBMS_DATAPUMP.SET_PARALLEL(HANDLE => H1, DEGREE => 1);
DBMS_DATAPUMP.ADD_FILE(HANDLE => H1, FILENAME => 'i1.LOG', FILETYPE => 3);
DBMS_DATAPUMP.METADATA_FILTER(HANDLE => H1,
NAME => 'SCHEMA_EXPR',
VALUE => 'IN (''HIS_tttt1'') ');
DBMS_DATAPUMP.METADATA_FILTER(HANDLE => H1,
NAME => 'NAME_EXPR',
VALUE => 'IN(''T1'')');
/* DBMS_DATAPUMP.METADATA_FILTER(HANDLE => H1,
NAME => 'TABLE_FILTER',
VALUE => 'HIS_tttt1.T1');*/
DBMS_DATAPUMP.METADATA_REMAP(HANDLE => H1,
NAME => 'REMAP_SCHEMA',
OLD_VALUE => 'HIS_tttt1',
VALUE => 'HIS_tttt');
DBMS_DATAPUMP.SET_PARAMETER(HANDLE => H1,
NAME => 'TABLE_EXISTS_ACTION',
VALUE => 'APPEND');
DBMS_DATAPUMP.DATA_FILTER(HANDLE => H1,
NAME => 'SUBQUERY',
VALUE => ' where substr(ROWID,1,16)=''AAAeB/AAZAAENFOA''');',
TABLE_NAME => 'T1',
SCHEMA_NAME => 'HIS_tttt1');
DBMS_DATAPUMP.START_JOB(HANDLE => H1);
DBMS_DATAPUMP.DETACH(HANDLE => H1);
EXCEPTION
WHEN OTHERS THEN
NULL;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END EXPDP_;