

# Transferir arquivos entre o RDS para Oracle e um sistema de arquivos Amazon EFS
<a name="oracle-efs-integration.transferring"></a>

Para transferir arquivos entre uma instância do RDS para Oracle e um sistema de arquivos do Amazon EFS, crie pelo menos um diretório Oracle e configure as permissões do sistema de arquivos EFS para controlar o acesso à instância de banco de dados.

**Topics**
+ [Criar um diretório Oracle](#oracle-efs-integration.transferring.od)
+ [Transferir dados de e para um sistema de arquivos EFS: exemplos](#oracle-efs-integration.transferring.upload)

## Criar um diretório Oracle
<a name="oracle-efs-integration.transferring.od"></a>

Para criar um diretório da Oracle, use o procedimento `rdsadmin.rdsadmin_util.create_directory_efs`. O procedimento tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  Sim  |  O nome do diretório da Oracle.   | 
|  `p_path_on_efs`  |  VARCHAR2  |  –  |  Sim  |  O caminho no sistema de arquivos EFS. O prefixo do nome do caminho usa o `/rdsefs-fsid/` padrão, em que *fsid* é um espaço reservado para o ID do sistema de arquivos EFS. Por exemplo, se seu sistema de arquivos EFS for denominado `fs-1234567890abcdef0` e você criar um subdiretório nesse sistema de arquivos chamado `mydir`, você poderá especificar o seguinte valor: <pre>/rdsefs-fs-1234567890abcdef0/mydir</pre>  | 

Suponha que você crie um subdiretório denominado `/datapump1` no sistema de arquivos EFS `fs-1234567890abcdef0`. O exemplo a seguir cria um diretório Oracle `DATA_PUMP_DIR_EFS` que aponta para o diretório `/datapump1` no sistema de arquivos EFS. O valor do caminho do sistema de arquivos para o parâmetro `p_path_on_efs` é prefixado com a string `/rdsefs-`.

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

## Transferir dados de e para um sistema de arquivos EFS: exemplos
<a name="oracle-efs-integration.transferring.upload"></a>

O exemplo a seguir usa o Oracle Data Pump para exportar a tabela denominada `MY_TABLE` para o arquivo `datapump.dmp`. Esse arquivo reside em um sistema de arquivos 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;
/
```

O exemplo a seguir usa o Oracle Data Pump para importar a tabela denominada `MY_TABLE` do arquivo `datapump.dmp`. Esse arquivo reside em um sistema de arquivos 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 obter mais informações, consulte [Importar dados para o Oracle no Amazon RDS](Oracle.Procedural.Importing.md).