Utiliser Data Pump à partir de PL/SQL avec DBMS_DATAPUMP

Utilisez le package PL/SQL DBMS_DATAPUMP pour exporter et importer des fichiers dump Data Pump directement vers et depuis Object Storage.

Le package PL/SQL DBMS_DATAPUMP fournit une interface pour les opérations d'export et d'import Oracle Data Pump directement à partir de la base de données. DBMS_DATAPUMP convient aux exports et imports complets et de niveau schéma. Pour exporter ou charger des données de niveau requête ou objet, envisagez d'utiliser DBMS_CLOUD.EXPORT_DATA ou DBMS_CLOUD.COPY_DATA. Pour effectuer un import ou un export complet au niveau de la base de données à l'aide des utilitaires de ligne de commande, utilisez les outils Data Pump expdp et impdp.

Cette rubrique explique comment utiliser le package PL/SQL DBMS_DATAPUMP pour exporter et importer des fichiers dump Data Pump directement vers et depuis une banque d'objets. Pour écrire ou lire un fichier de banque d'objets, indiquez un URI de banque d'objets dans ADD_FILE et fournissez un nom d'informations d'identification.

Prérequis

Créez des informations d'identification Object Storage, des listes de contrôle d'accès réseau et tous les objets d'informations d'identification ou de répertoire requis avant de suivre ces exemples.

Exemple : export vers Object Storage

Cet exemple crée un travail d'export, écrit le fichier dump dans Object Storage et utilise le nom des informations d'identification à la place d'un objet de répertoire local.

DECLARE
  hdl       NUMBER;
  dump_file VARCHAR2(1024) := 'https://objectstorage.example.com/n/namespace/b/bucket/o/hr_exp_%U.dmp';
  cred_name VARCHAR2(128)  := 'OBJSTORE_CRED';
BEGIN
  hdl := DBMS_DATAPUMP.OPEN(
           operation => 'EXPORT',
           job_mode   => 'SCHEMA',
           job_name   => 'HR_EXP_OBJSTORE');

  DBMS_DATAPUMP.ADD_FILE(
    handle    => hdl,
    filename  => dump_file,
    directory => cred_name,
    filesize  => NULL,
    filetype  => DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE,
    reusefile => 1);

  DBMS_DATAPUMP.METADATA_FILTER(hdl, 'SCHEMA_EXPR', 'IN (''HR'')');
  DBMS_DATAPUMP.START_JOB(hdl);
  DBMS_DATAPUMP.DETACH(hdl);
END;
/

Exemple : importation à partir d'Object Storage

Cet exemple importe le fichier dump à partir d'Object Storage et remappe le schéma lors de l'import.

DECLARE
  hdl       NUMBER;
  dump_file VARCHAR2(1024) := 'https://objectstorage.example.com/n/namespace/b/bucket/o/hr_exp_%U.dmp';
  cred_name VARCHAR2(128)  := 'OBJSTORE_CRED';
BEGIN
  hdl := DBMS_DATAPUMP.OPEN(
           operation => 'IMPORT',
           job_mode   => 'SCHEMA',
           job_name   => 'HR_IMP_OBJSTORE');

  DBMS_DATAPUMP.ADD_FILE(
    handle    => hdl,
    filename  => dump_file,
    directory => cred_name,
    filetype  => DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE);

  DBMS_DATAPUMP.METADATA_REMAP(hdl, 'REMAP_SCHEMA', 'HR', 'HR2');
  DBMS_DATAPUMP.START_JOB(hdl);
  DBMS_DATAPUMP.DETACH(hdl);
END;
/