sql >> Base de Datos >  >> RDS >> Oracle

Ejemplo de tabla externa de Oracle

Un uso común de una tabla externa es la selección de datos de un archivo OS CSV (plano) a través de SQL *Plus. Cuando utilice una tabla externa en este modo, debe especificar el tipo de datos en el archivo y cómo se organizan los datos. Puede seleccionar desde una tabla externa, pero no se le permite modificar los contenidos (sin inserciones, actualizaciones o eliminaciones).

La función de tabla externa de Oracle le permite realizar dos operaciones distintas:

  • Seleccione información de forma transparente de archivos de valores separados por comas (CSV) del sistema operativo a través de SQL, lo que le permite realizar tareas como cargar estos archivos en la base de datos.
  • Cree archivos de volcado independientes de la plataforma que se pueden usar para transferir datos. También puede crear estos archivos comprimidos y cifrarlos para un transporte de datos eficiente y seguro

En este ejemplo, el archivo sin formato se denomina ex.csv y se encuentra en el directorio D:Extbl. Contiene los siguientes datos:5|2|0|0|12/04/2012|Mitad6|1|0|1|09/06/2013|Trimestre7|4|0|1|08/10/2013|Completo8| 1|1|0|06/15/2013|TrimestrePrimero, cree un objeto de directorio que apunte a la ubicación del archivo plano en el disco:SQL> cree el directorio exa_dir como 'D:Extbl'; Luego cree un script que cree la tabla externa que hará referencia al archivo plano:crear tabla exadata_et(exa_id NÚMERO,machine_count NÚMERO,hide_flag NÚMERO,oracle NÚMERO,ship_date FECHA,rack_type VARCHAR2(32))organización externa (tipo oracle_loaderdirectorio predeterminado exa_diraccess parámetros(registros delimitados por campos de nueva línea terminados por '|' los valores de campo que faltan son nulos (exa_id, machine_count, hide_flag, oracle, ship_date char date_format date mask "mm/dd/yyyy", rack_type))ubicación ('ex.csv'))rechazar límite ilimitado;Se crea una tabla externa llamada EXADATA_ET cuando ejecuta este script. Ahora, use SQL*Plus para ver el contenido del archivo plano:SQL> seleccione * de exadata_et;EXA_ID MACHINE_COUNT HIDE_FLAG ORACLE SHIP_DATE RACK_TYPE---------- ------------ - ---------- ---------- ---------- ------------------- -5 2 0 0 04-DIC-11 Mitad6 1 0 1 06-SEP-12 Trimestre 7 4 0 1 10-AGO-12 Completo8 1 1 0 15-JUN-12 Trimestre