可以使用数据泵API来编写PL/SQL脚本以导出和导入数据。数据泵API在DBMS_DATAPUMP程序包中,它可以完成以下任务:
★ 启动作业;
★ 监控作业;
★ 分解作业;
★ 停止作业;
★ 重新启动作业.
代码清单14-10给出了一个PL/SQL的样例脚本,它显示如何完成一个简单的用户模式的导出。要确保已经创建了目录对象并已授予该用户应有的权利.
使用数据泵API创建数据泵导出作业
DECLARE
d1 NUMBER; -- Data Pump job hand1e
BEGIN
—- first create a Data Pump job for the export.
d1 := DBMS_DATAPUMP.OPEN('EXPORT','SCHEMA',NULL,'TEST1','LATEST');
—-Specify a single dump file for the job
DBMS_DATAPUMP.ADO_FILE(d1,'testl.dmp','DMPDIR');
--Specify the schema.
DBMS_DATAPUMP.METADATA_FILTER(d1,'SCHEMA_EXPR','IN (''OE'')');
--Start the export job.
DBMS_DATAPUMP.START_JOB(d1);
--Indicate that the job finished and detach from it.
dbms_output.put_line('Job has completed');
dbms_datapump.detach(d1);
END;
/
该例使用重映射参数将OE的对象重映射到用户HR的模式中。
使用数据泵API创建数据泵导入作业
DECLARE
d1 NUMBER; -- Data Pump job hand1e
BEGIN
—- first create a Data Pump job for the import.
d1 := DBMS_DATAPUMP.OPEN('IMPORT','FULL',NULL,'TEST2');
—-Specify the dump file for the job
DBMS_DATAPUMP.ADO_FILE(d1,'testl.dmp','DMPDIR');
--The following will remap schema objects from oe to hr.
DBMS_DATAPUMP.METADATA_REMAP(d1,'REMAP_SCHEMA','oe','hr');
--Start the job.
DBMS_DATAPUMP.START_JOB(d1);
--Indicate that the job finished and detach from it.
dbms_output.put_line('Job has completed');
dbms_datapump.detach(d1);
END;
/