tema: oracle sql loader · 8. hasta este punto si listamos la información de la ruta de los...
TRANSCRIPT
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
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) )
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.
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.
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.
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.
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.
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