1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
set serveroutput on size 100000
declare
V_DIRECTORY constant VARCHAR2(30) := 'DATA_PUMP_DIR';
--
V_HANDLE NUMBER;
V_JOB_STATE VARCHAR2(400);
begin
V_HANDLE := dbms_datapump.open (operation => 'EXPORT', job_mode => 'TABLE', job_name => 'SEVERAL_FILES_EXP', version => 'COMPATIBLE');
dbms_output.put_line( 'handle=' || V_HANDLE );
dbms_datapump.add_file(handle => V_HANDLE, filename => 'FILE_1.DMP', directory => V_DIRECTORY, filetype => dbms_datapump.KU$_FILE_TYPE_DUMP_FILE );
dbms_datapump.add_file(handle => V_HANDLE, filename => 'FILE_2.DMP', directory => V_DIRECTORY, filetype => dbms_datapump.KU$_FILE_TYPE_DUMP_FILE );
dbms_datapump.add_file(handle => V_HANDLE, filename => 'FILE_3.DMP', directory => V_DIRECTORY, filetype => dbms_datapump.KU$_FILE_TYPE_DUMP_FILE );
dbms_datapump.add_file(handle => V_HANDLE, filename => 'SEVERAL_FILES_EXPORT.LOG', directory => V_DIRECTORY, filetype => dbms_datapump.KU$_FILE_TYPE_LOG_FILE);
dbms_datapump.metadata_filter(handle => V_HANDLE, name => 'SCHEMA_EXPR', value => 'IN(''TEST'')');
dbms_datapump.metadata_filter(handle=>V_HANDLE, name=>'NAME_EXPR', value=> 'IN(''TABLE_4000000'',''TABLE_2000000'',''TABLE_1000000'')');
--Une séquence de l'export des tables n'est pas garantie! Le parallélisme n'est pas non plus.
dbms_datapump.set_parallel(handle=>V_HANDLE, degree=> 4);
dbms_datapump.start_job(handle => V_HANDLE, skip_current => 0, abort_step => 0);
dbms_datapump.wait_for_job(handle => V_HANDLE , job_state=> V_JOB_STATE );
dbms_output.put_line( 'job_state= '|| V_JOB_STATE );
end;
/
Procédure PL/SQL terminée avec succès. |
Partager