SQL*Loader – (Parte 4): El Fichero Log.

El Fichero Log. 

El archivo log es una copia de la actividad producida durante la carga de datos, contiene la siguiente información:

  • Nombre del archivo de control, archivo log, archivo erróneo, archivo descartado, archivo de datos.
  • Valor de distintos parámetros de la línea de comando.
  • Detalle de los campos y tipo de datos contenidos en el archivo de datos cargado.
  • Mensajes de error cuando los datos han causado errores.
  • Mensajes indicando que determinados datos han sido descartados.
  • Un resumen de la carga realizada incluyendo el número de datos leídos desde el archivo de datos, el número de columnas rechazadas por causa de errores, numero de columnas rechazadas por el criterio de selección, y por el tiempo transcurrido de la carga.

Es conveniente revisar este archivo después de realizar una carga de datos, ya que esta información no se nos mostrara por pantalla al finalizar la carga.

Ejemplo de Archivo LOG:

Control File: ejemplo4.ctl

Data File: ejemplo4.dat

Bad File: ejemplo4.bad

Discard File: ejemplo4.dis

(Allow 999 discards)                         → por defecto

Number to load: ALL

Number to skip: 0                            → registros o atributos que no quieren cargarse

Errors allowed: 50                            → por defecto

Bind array: 64 rows, maximum of 65536 bytes

Path used: Convencional                 → significa que se ha usado in INSERT en la carga

Bind array es un área de memoria donde SQL*LOADER almacena datos para filas que serán insertadas en la base de datos. Cuando el bind array se llena, SQL*Loader inserta los datos en el la tabla y luego ejecuta un COMMIT.

Column Name Position Len Term Encl Datatype
---------- ----- ---- ---- ----------------
EMPNO 1:4 4 CHARACTER
ENAME 6:15 10 CHARACTER
JOB 17:25 9 CHARACTER
MGR 27:30 4 CHARACTER
SAL 32:39 8 CHARACTER
COMM 41:48 8 CHARACTER
DEPTNO 50:51 2 CHARACTER
HIREDATE 52:60 9 CHARACTER          → Esta parte indica los datos
                                      (FILLER FIELD) cargados y 
                                      si hay datos que existían 
                                      anteriormente
Record 8: Rejected - Error on table EMP.
ORA-01400: cannot insert NULL into ("SCOTT"."EMP"."EMPNO")  → errores

Record 9: Rejected - Error on table EMP.
ORA-00001: unique constraint (SCOTT.EMPIX) violated

7 Rows successfully loaded.
2 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.

Space allocated for bind array: 65520 bytes(910 rows)
Space allocated for memory besides bind array: 0 bytes

Total logical records skipped: 0
Total logical records read: 9
Total logical records rejected: 2
Total logical records discarded: 0
Run began on Sun Nov 08 11:49:42 1998
Run ended on Sun Nov 08 11:49:42 1998
Elapsed time was: 00:00:00.69
CPU time was: 00:00:00.13

Ejemplo de Carga de datos de longitud Variable

Creacion en Oracle de la tabla personas

CREATE TABLE personas
(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) CONSTRAINT persona_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;

Creación del archivo de texto:

Tenemos que tener en cuenta que cada línea es un registro, por eso hay que tener precaución de no dejar líneas en blanco, porque esto generaría errores.

Creamos la tabla en Excel y la guardamos en formato csv, que permitirá que los campos sean separados por comas

Al abrir el archivo en el block de notas lo veremos de la siguiente manera:

Creación del archivo de control:

Abrimos el block de notas, colocamos las siguientes líneas y lo guardamos en formato .CTL

Aclaraciones:

OPTIONS (SKIP=1)                                    Ignorara el primer registro (Encabezado)

APPEND                                                         → Mantendrá datos existentes de la tabla

WHEN (nacionalidad=’Colombiano’) → Ignorara los registros cuya nacionalidad no sea Colombiano.

Realizamos la carga de datos de la siguiente forma:

sqlldr scott/tiger@oracle control=C:\SQL_LOADER\control.ctl
log=c:\SQL_LOADER\personas.log data=c:\SQL_LOADER\personas.csv

Fichero log creado:

Datos cargados:


-- Bajar Articulo: SQL*Loader - (Parte 4): El Fichero Log. como PDF --


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

error: Content is protected !!