Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los...

8
Base de datos II. Guía 4 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: Oracle SQL LOADER Objetivo Realizar migraciones de datos desde archivos planos a oracle Materiales Oracle 12 c Guía Número 5 Introducción SQL Loader es un utilitario que permite la inserción de datos desde un archivo plano a una o más bases de datos. Durante una sola de sus ejecuciones es posible llenar múltiples tablas con datos de múltiples archivos, manejar registros de ancho variable o fijo, manipular los datos entrantes para tratar con valores nulos, delimitadores y espacios en blanco, obviar registros o encabezados y reaccionar frente a fallas del proceso de cargado. En la ilustración 1 podemos observar el funcionamiento de SQL Loader. Mediante el procesamiento de un archivo de control (Control File) que contiene esencialmente la localización de los archivos fuente, el formato de éstos y las tablas a ser llenadas, el ejecutable de la herramienta lee los datos de entrada, llena la base de datos y genera 3 tipos de archivos distintos: Discard File contiene los registros que no fueron cargados (por ejemplo debido a que en el archivo de control se haya configurado no registrar a las mujeres mayores de 25 años), Bad File contiene los registros que generaron errores (podría ser debido a fallas en el formato) y Log File, el archivo de log de la operación

Transcript of Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los...

Page 1: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

Base de datos II. Guía 4 1

Facultad: Ingeniería

Escuela: Computación

Asignatura: Base de datos II

Tema: Oracle SQL LOADER

Objetivo

Realizar migraciones de datos desde archivos planos a oracle

Materiales

Oracle 12 c

Guía Número 5

Introducción

SQL Loader es un utilitario que permite la inserción de datos desde un archivo plano a una o más bases de datos. Durante una sola de sus ejecuciones es posible llenar múltiples tablas con datos de múltiples archivos, manejar registros de ancho variable o fijo, manipular los datos entrantes para tratar con valores nulos, delimitadores y espacios en blanco, obviar registros o encabezados y reaccionar frente a fallas del proceso de cargado. En la ilustración 1 podemos observar el funcionamiento de SQL Loader. Mediante el procesamiento de un archivo de control (Control File) que contiene esencialmente la localización de los archivos fuente, el formato de éstos y las tablas a ser llenadas, el ejecutable de la herramienta lee los datos de entrada, llena la base de datos y genera 3 tipos de archivos distintos: Discard File contiene los registros que no fueron cargados (por ejemplo debido a que en el archivo de control se haya configurado no registrar a las mujeres mayores de 25 años), Bad File contiene los registros que generaron errores (podría ser debido a fallas en el formato) y Log File, el archivo de log de la operación

Page 2: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

Procedimiento 1. Crear la siguiente estructura de directorios.

2. En la carpeta migración, crear los siguientes archivos.

3. Crear el TableSpace llamado "udbsql_loader" en la carpeta datafile, creada en el punto uno.

4. Crear el usuario "udbloader" asignándolo al TABLESPACE "udbsql_loader" y darle todos los

privilegios.

5. Loguearse con el nuevo usuario y crear la tabla "MATERIA" , como se muestra en la siguiente

imagen.

Vista SqlDeveloper Query

CREATE TABLE MATERIAS ( IDMATERIA NUMBER(*, 0) , NOMBREMATERIA VARCHAR2(150 BYTE) )

Page 3: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

6. Editar el archivo "Data.csv" con la siguiente información.

7. Editar el archivo "LOAD_DATA.TXT", el cual contiene la configuración para la carga del archivo.

Donde:

PARAMETRO Descripción

INFILE Nombre del Archivo a cargar APPEND INTO TABLE Nombre de la tabla FIELDS TERMINATED BY Separador de Campo TRAILING NULLCOLS Tratar cualquier columna relativamente

posicionada que no esté presente en el registro como columna nula.

8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben

ver como se muestra en la siguiente imagen.

9. Ejecutar el comando de sqllder pasando de parámetro el archivo de configuración y solicitará el

password del usuario udbloader, al terminar la ejecución se puede ver un resumen de que los 7

registros cargadas a la tabla Materias.

Page 4: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

10. Al revisar la información de la tabla, se pueden ver los datos cargados correctamente.

11. El archivo "LOAD_DATA.LOG" contiene la información de la carga realizada anteriormente.

12. En muchas ocasiones es necesario utilizar un tns configurado en el archivo "tnsnames.ora", este

dará una configuración de conexión que será pasada de parámetro al comando sqlldr, este archivo se

encuentra ubicado en la ruta de instalación de oracle, por ejemplo "

C:\app\CursoBasedeDatos\product\12.1.0\dbhome_1\NETWORK\ADMIN ".

Verificar su correcta configuración en la máquina que esté utilizando.

Page 5: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

13. Eliminar la data de la tabla Materias.

14. Ejecutar el comando sqlldr pasando los siguientes parámetros

PARAMETRO Descripción

Udbloader Nombre de Usuario \"udbloader\" Password, se le coloca la "\" por cualquier

caracter extraño que se utilice en la contraseña.

@ORCL TNS configurado en el archivo tnsnames.ora Control=LOAD_DATA.TXT Archivo de configuración. bad=DATA.bad Archivo en el que se cargaran aquellos registros

que no se puedan cargar. log=LOAD_DATA.log Archivo con información sobre la carga

realizada, sea esta exitosa o genere errores.

Page 6: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

15. Hasta este punto se ha realizado una carga sencilla de una tabla sin secuencias y solo con tipos de

datos simples, para este ejemplo crearemos una tabla llamada Profesores, con la siguiente

estructura.

16. Crear una nueva secuencia llamada "seq_profesor".

17. Crear todos los archivos relacionados a PROFESOR.

18. Editar el archivo "PROFESORES.txt", de la siguiente forma.

Page 7: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

Nota: si en algún momento queremos filtrar los registros por campo podemos utilizas la siguiente

sintaxis

OPTIONS (SKIP=1) LOAD DATA APPEND INTO TABLE nombre_tabla WHEN (columna='valor') (

)

19. Editar el archivo cargar llamado "PROFESORES.csv" con la siguiente información.

20. Ejecutar el siguiente comando y ver el resultado de la carga.

21. Datos cargados exitosamente en la tabla "PROFESOR"

Nota: La secuencia para este ejemplo empieza con 9, por pruebas realizadas anteriormente.

Page 8: Tema: Oracle SQL LOADER · 8. Hasta este punto si listamos la información de la ruta de los archivos de configuración se deben ver como se muestra en la siguiente imagen. 9. Ejec

Análisis de resultados

1- Basandose en la siguiente tabla persona, cree una tabla en Oracle, y los respectivos archivos para poder realizar el procedimiento con SQL LOADER, en este ejercicio se deberá insertar en la tabla solo los registros cuya nacionalidad sea colombiano , también dependiente del tipo de documento deberá colocarse lo siguiente en la tabla:

Tipo documento 1=oficial 2=particular 3=militar 4=usos varios

2- Siempre utilizando la tabla persona, cree un proceso en donde solo se inserten los datos de personal colombiano con numero de documento 2

Investigación complementaria Investigue como realizar una carga de multiples tablas y utilizando los siguientes dos archivos txt, cree las tablas, datos y empleados en Oracle y realice un procedimiento que permita insertar dos tablas