Licenciado
Nota Preeliminar
Esta es una breve guía que pretende introducir nociones básicas en la utilización
del utilitario SQL Loader. Para mayor información remitirse a las referencias
consultadas para la elaboración de este documento que fueron principalmente la
documentación en línea de Oracle y el libro Oreilly - Oracle Sql Loader The
Definitive Guide.
Contenidos
1.
2.
3.4.
5.
6.
Introducción
Ejemplo Rápido
Carga Selectiva de Registros y Columnas
Carga de Múltiples Tablas
Transformaciones a los Datos
Referencias
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, manejarregistros 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 lalocalizació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 losregistros que generaron errores (podría ser debido a fallas en el formato) y Log
File, el archivo de log de la operación.
Ilustración 1 SQL Loader [1]
Un Ejemplo Rápido
En esta sección realizaremos un pequeño ejemplo que nos permitirá conocer un
poco más sobre el funcionamiento de la herramienta y el modo en que se invoca. El
objetivo es llenar la tabla Persona a partir de un archivoplano.
Preeliminares: Creación de la Tabla Persona
Antes de utilizar SQL Loader es necesario crear la tabla Persona en la base de
datos, para ello debemos acceder al servidor Linux mediante SSH y una vez hecho
esto, entrar a SQL Plus, un utilitario (al igual que SQL Loader) que permite la
ejecución de comandos SQL, para correr el script de creación de la tabla.
1) Ingreso a SSH. Eninicio/programas/conectividad/Secure Shell Client
2) Ingresar el nombre de usuario, nombre del servidor y cuando se solicite, la
contraseña
3) Ingresar a SQL Plus escribiendo:
sqlplus NOMBREUSUARIO/CONTRASEÑA@NOMBRESERVICIO
Donde NOMBRESERVICIO es en nuestro caso chie10
4) Correr la sentencia de creación de la tabla.
Se debe copiar la siguiente sentencia a la consola de SQL PLus y oprimir ENTERpara correrla. Al finalizar el proceso debe verse una pantalla similar a la ilustración
2.
CREATE TABLE persona
(id_persona NUMBER CONSTRAINT persona_pk PRIMARY KEY,
nombres VARCHAR2(15) CONSTRAINT persona_nombres_nn NOT NULL,
apellidos VARCHAR2(15) CONSTRAINT persona_apellidos_nn NOT NULL,
nacionalidad VARCHAR2(30) CONSTRAINT persona_nacio_nn NOT NULL,
tipo_documento VARCHAR(12) CONSTRAINTpersona_tipo_dcto_nn NOT NULL,
numero_documento VARCHAR(12) CONSTRAINT persona_num_dcto_nn NOT NULL,
CONSTRAINT persona_tipo_num_dcto_nd UNIQUE (tipo_documento, numero_documento),
fecha_nacimiento DATE CONSTRAINT persona_fecha_nac_nn NOT NULL,
sexo CHAR CONSTRAINT persona_sexo_nn NOT NULL
CONSTRAINT persona_sexo_cc CHECK (sexo IN ('f', 'm') )
);
CREATE SEQUENCE cons_persona;
Ilustración 2Aspecto al crear una tabla
Preeliminares: Creación del Archivo Plano
El siguiente paso es crear el archivo plano, la forma más directa de realizarlo es
copiar los datos de la tabla 1 en Excel y después guardar el archivo en formato .csv
(delimitado por comas).
Nombre
Apellido
Nacionalidad
Efraín
León
Fernando
Jorge
Medina
De Grieff
Vallejo
Franco
Colombiano...
Regístrate para leer el documento completo.