

# Uso de tablas externas en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.External_Tables"></a>

Las *tablas externas de Oracle *son tablas con datos no incluidos en la base de datos. Los datos se encuentran en archivos externos a los que la base de datos puede acceder. Las tablas externas le permiten acceder a datos sin cargarlos en la base de datos. Para obtener más información sobre las tablas externas, consulte la sección [Managing External Tables](http://docs.oracle.com/database/121/ADMIN/tables.htm#ADMIN01507) en la documentación de Oracle. 

Amazon RDS le permite almacenar archivos de tablas externas en objetos de directorio. Puede crear un objeto de directorio o utilizar uno predefinido en la base de datos Oracle como, por ejemplo, el directorio DATA\$1PUMP\$1DIR. Para obtener información sobre la creación de objetos de directorio, consulte [Creación y eliminación de directorios en el espacio de almacenamiento de datos principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories). Puede consultar la vista ALL\$1DIRECTORIES para elaborar una lista de los objetos de directorio de la instancia de base de datos de Oracle en Amazon RDS.

**nota**  
Los objetos de directorio apuntan hacia el espacio de almacenamiento de datos principal (volumen de Amazon EBS) utilizado por la instancia. El espacio utilizado, junto con los archivos de datos, registros REDO, archivos de auditoría, de seguimiento y de otro tipo, cuenta a la hora de calcular el almacenamiento asignado.

Puede desplazar un archivo de datos externos de una base de datos Oracle a otra base de datos utilizando el paquete [ DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/database/121/ARPLS/d_ftran.htm#ARPLS095) o el paquete [UTL\$1FILE](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS069). El archivo de datos externos se traslada de un directorio en la base de datos de origen al directorio especificado en la base de datos de destino. Para obtener más información sobre del uso de `DBMS_FILE_TRANSFER`, consulte [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md).

Después de trasladar el archivo de datos externos, este le permite crear una tabla externa. En el siguiente ejemplo se crea una tabla externa que usa el archivo `emp_xt_file1.txt` en el directorio USER\$1DIR1.

```
CREATE TABLE emp_xt (
  emp_id      NUMBER,
  first_name  VARCHAR2(50),
  last_name   VARCHAR2(50),
  user_name   VARCHAR2(20)
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY USER_DIR1
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    (emp_id,first_name,last_name,user_name)
  )
  LOCATION ('emp_xt_file1.txt')
)
PARALLEL
REJECT LIMIT UNLIMITED;
```

Suponga que quiere trasladar datos de una instancia de base de datos de Oracle en Amazon RDS a un archivo de datos externos. En ese caso, puede rellenar el archivo de datos externos creando una tabla externa y seleccionando los datos de la tabla en la base de datos. Por ejemplo, la siguiente instrucción SQL crea la tabla externa `orders_xt` mediante la consulta a la tabla `orders` de la base de datos.

```
CREATE TABLE orders_xt
  ORGANIZATION EXTERNAL
   (
     TYPE ORACLE_DATAPUMP
     DEFAULT DIRECTORY DATA_PUMP_DIR
     LOCATION ('orders_xt.dmp')
   )
   AS SELECT * FROM orders;
```

En este ejemplo, los datos se rellenan en el archivo `orders_xt.dmp` del directorio DATA\$1PUMP\$1DIR.