Utiliser l'extraction de données à partir de PL/SQL avec DBMS_DATAPUMP

Utilisez l'ensemble PL/SQL DBMS_DATAPUMP pour exporter et importer des fichiers de vidage Data Pump directement vers et depuis le stockage d'objets.

L'ensemble PL/SQL DBMS_DATAPUMP fournit une interface pour les opérations d'exportation et d'importation Oracle Data Pump directement à partir de la base de données. DBMS_DATAPUMP convient aux exportations et importations complètes et au niveau du schéma. Pour exporter ou charger des données au niveau de l'interrogation ou de l'objet, envisagez d'utiliser DBMS_CLOUD.EXPORT_DATA ou DBMS_CLOUD.COPY_DATA. Pour une importation ou une exportation complète au niveau de la base de données à l'aide des utilitaires de ligne de commande, utilisez les outils d'extraction de données expdp et impdp.

Cette rubrique décrit comment utiliser l'ensemble PL/SQL DBMS_DATAPUMP pour exporter et importer des fichiers de vidage Data Pump directement vers et depuis un magasin d'objets. Pour écrire ou lire un fichier de magasin d'objets, spécifiez un URI de magasin d'objets dans ADD_FILE et fournissez un nom de données d'identification.

Conditions requises

Créez les données d'identification du service de stockage d'objets, les listes de contrôle d'accès réseau et tout répertoire ou objet de données d'identification requis avant de suivre ces exemples.

Exemple : Exportation vers le stockage d'objets

Cet exemple crée une tâche d'exportation, écrit le fichier de vidage dans le stockage d'objets et utilise le nom des données 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 : Importer à partir du stockage d'objets

Cet exemple importe le fichier de vidage à partir du stockage d'objets et remappe le schéma lors de l'importation.

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;
/