Uso de tablas externas de Oracle - Amazon Relational Database Service

Uso de tablas externas de Oracle

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 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_PUMP_DIR. 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. Puede consultar la vista ALL_DIRECTORIES 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_FILE_TRANSFER o el paquete UTL_FILE. 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 acerca del uso de DBMS_FILE_TRANSFER, consulte Importación mediante Oracle Data Pump.

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_DIR1.

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_PUMP_DIR.