

# Transferencia de archivos entre RDS para Oracle y un sistema de archivos Amazon EFS
<a name="oracle-efs-integration.transferring"></a>

Para transferir archivos entre una instancia de RDS para Oracle y un sistema de archivos Amazon EFS, cree al menos un directorio de Oracle y configure los permisos del sistema de archivos EFS para controlar el acceso a la instancia de base de datos.

**Topics**
+ [Creación de un directorio de Oracle](#oracle-efs-integration.transferring.od)
+ [Transferencia de datos hacia y desde un sistema de archivos EFS: ejemplos](#oracle-efs-integration.transferring.upload)

## Creación de un directorio de Oracle
<a name="oracle-efs-integration.transferring.od"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_util.create_directory_efs` para crear un directorio de Oracle. El procedimiento tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  Sí  |  Nombre del directorio de Oracle.   | 
|  `p_path_on_efs`  |  VARCHAR2  |  –  |  Sí  |  Ruta al sistema de archivos EFS. El prefijo del nombre de la ruta usa el patrón `/rdsefs-fsid/`, donde *fsid* es un marcador de posición para el ID del sistema de archivos EFS. Por ejemplo, si su sistema de archivos EFS se denomina `fs-1234567890abcdef0` y usted crea un subdirectorio en ese sistema de archivos denominado `mydir`, puede especificar el siguiente valor: <pre>/rdsefs-fs-1234567890abcdef0/mydir</pre>  | 

Suponga que crea un subdirectorio denominado `/datapump1` en el sistema de archivos EFS `fs-1234567890abcdef0`. El siguiente ejemplo crea un directorio de Oracle `DATA_PUMP_DIR_EFS` que apunta al directorio `/datapump1` del sistema de archivos EFS. El valor de la ruta del sistema de archivos para el parámetro `p_path_on_efs` lleva el prefijo de cadena`/rdsefs-`.

```
BEGIN
  rdsadmin.rdsadmin_util.create_directory_efs(
    p_directory_name => 'DATA_PUMP_DIR_EFS', 
    p_path_on_efs    => '/rdsefs-fs-1234567890abcdef0/datapump1');
END;
/
```

## Transferencia de datos hacia y desde un sistema de archivos EFS: ejemplos
<a name="oracle-efs-integration.transferring.upload"></a>

El siguiente ejemplo utiliza Oracle Data Pump para exportar la tabla denominada `MY_TABLE` a un archivo `datapump.dmp`. Este archivo reside en un sistema de archivos EFS.

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'TABLE', job_name=>null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-exp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

El siguiente ejemplo utiliza Oracle Data Pump para importar la tabla denominada `MY_TABLE` desde el archivo `datapump.dmp`. Este archivo reside en un sistema de archivos EFS.

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(
    operation => 'IMPORT',
    job_mode  => 'TABLE',
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-imp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

Para obtener más información, consulte [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md).