SQL Loader Ms Xp

41
UNIVERSIDAD PRIVADA ANTENOR ORREGO Escuela de Ingeniería de Computación y Sistemas Elmer González Herrera BASE DE DATOS - Curso 2009 I Fundamentos, Diseño, e Implementación, 7/e

Transcript of SQL Loader Ms Xp

Page 1: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Fundamentos, Diseño,

e Implementación, 7/e

Page 2: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Pág. 2/51

En este capítulo, usted aprenderá:

SQL* Loader

El Misterioso Control File

Campos y Tipos de Datos

Carga de archivos de longitud fija

Carga de datos delimitados

Validación y Selección de datos cargados

Page 3: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Page 4: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

¿Qué es SQL*Loader?

• Es otro de los utilitarios proporcionados por

Oracle para cargar datos desde un archivo plano (flat) dentro de uno o mas tablas de una base de datos• La base de casi todas las cosas que haga con SQL*Loader es un archivo conocido como control file (archivo de control)

• SQL*Loader, lee archivos de datos tipo texto y coloca los datos en la base de datos Oracle, de acuerdo con las instrucciones que recibe del archivo de control.

Page 5: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

El Escenario de SQL*Loader

SQL*LoaderArchivo de

Datos de

INPUT

Base de

Datos

ORACLE

Archivo

de Control

(DDL)

Archivos

de filas

descartadas

Archivo

de Log

Archivos

de filas

rechazadas

datos datos

Discard File Log File Bad File

registros no seleccionados

para el cargado

registros que

causan errores

Page 6: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Un Pequeño Ejemplo de SQL*Loader

"MI","2 Lake","lake","Marquette","26","103","463827N","0874552W","46.64083","-87.76444","","","","","","","Silver Lake Basin"

"MI","3 Lake","lake","Marquette","26","103","463826N","0874535W","46.64056","-87.75972","","","","","","","Silver Lake Basin"

"MI","8 Lake","lake","Marquette","26","103","463825N","0874611W","46.64028","-87.76972","","","","","","","Silver Lake Basin"

"MI","A C Miller Airport","airport","Hillsdale","26","059","414415N","0843353W","41.7375","-

84.56472","","","","","944","","Pioneer"

• Los Datos: un archivo texto con las descripciones geográficas del estado de Michigan, USA.

Page 7: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

• Como puede ver los datos en el archivo se encuentran delimitados por comas (“,”), y cada campo esta incluido entre comillas (“ “)• La tabla siguiente muestra los contenidos y la longitud máxima de cada campo.• Usaremos luego las sentencias SQL para crear la tabla en el cual todos los datos será cargados.

"MI","2 Lake","lake","Marquette","26","103","463827N","0874552W","46.64083","-87.76444","","","","","","","Silver Lake Basin"

"MI","3 Lake","lake","Marquette","26","103","463826N","0874535W","46.64056","-87.75972","","","","","","","Silver Lake Basin"

"MI","8 Lake","lake","Marquette","26","103","463825N","0874611W","46.64028","-87.76972","","","","","","","Silver Lake Basin"

"MI","A C Miller Airport","airport","Hillsdale","26","059","414415N","0843353W","41.7375","-

84.56472","","","","","944","","Pioneer"

"MI","A Pool","reservoir","Schoolcraft","26","153","461458N","0855713W","46.24944","-

85.95361","","","","","693","","Germfask"

"MI","A-Two Pool","reservoir","Schoolcraft","26","153","461642N","0860116W","46.27833","-86.02111","","","","","","","Driggs

Lake SE"

"MI","ATI Heliport","airport","Wayne","26","163","421315N","0832835W","42.22083","-83.47639","","","","","716","","Belleville"

Page 8: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

• El archivo GNIS (sistema de información de nombres geográficos), tiene la siguiente característica:

Descripción de los Campos del archivo GNIS

NUMERODE CAMPO

LONGITUDDE CAMPO

CONTENIDO

1 2 Código de estado alfanumérico

2 60 Nombre geográfico característico

3 9 Tipo característico

4 35 Nombre del condado

5 2 Código Federal del estado

6 3 Código Federal del condado

7 7 Latitud primaria en grados, minutos y segundos

8 8 Longitud primaria en grados, minutos y segundos

9 8 Latitud primaria en grados decimales

10 8 Longitud primaria en grados decimales

Page 9: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

NUMERODE CAMPO

LONGITUDDE CAMPO

CONTENIDO

11 7 Latitud fuente en grados, minutos y segundos

12 8 Longitud fuente en grados, minutos y segundos

13 8 Latitud fuente en grados decimales

14 8 Longitud fuente en grados decimales

15 5 Elevación (pies sobre el nivel del mar)

16 10 Población estimada

17 30 Nombre del sistema geográfico norteamericano

• Use la próxima sentencia SQL para crear la tabla en el cual todo estos datos deberán ser cargados.

Page 10: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

CREATE TABLE gnis_nombregeo (

gnis_abrev_estado CHAR(2),

gnis_nomb_descrip VARCHAR2(80),

gnis_tipo_caracteris VARCHAR2(9),

gnis_nomb_condado VARCHAR2(60),

gnis_latitud_primaria VARCHAR2(7),

gnis_long_primaria VARCHAR2(8),

gnis_elevacion NUMBER,

gnis_poblacion NUMBER,

gnis_nomb_celula VARCHAR2(60)

);• Como puede ver, no todos los campos en el archivo de datos van a ser cargados dentro de la tabla.

Page 11: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

• El siguiente Control File será usado para cargar datos de

nombres geográficos característicos para el estado de Michigan• El comando LOAD DATA le dice al SQL*Loader que va a cargar datos desde un archivo del sistema operativo hacia una tabla de la base de datos Oracle.• La tabla destino es identificada por la claúsula INTO TABLE:

APPEND INTO TABLE gnis_nombregeo

• APPEND le dice a SQL*Loader que preserve cualquier pre-existente dato en la tabla

El archivo de Control (Control File)

Page 12: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

LOAD DATA

APPEND INTO TABLE gnis_nombregeo

(

gnis_abrev_estado CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_nomb_descrip CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_tipo_caracteris CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_nomb_condado CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_cod_fed_estado FILLER INTEGER EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_cod_fed_condado FILLER INTEGER EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_latitud_primaria CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_long_primaria CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_latitud_primaria_dec FILLER DECIMAL EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_long_primaria_dec FILLER DECIMAL EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_latitud_fuente FILLER CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_long_fuente FILLER CHAR TERMINATED BY "," ENCLOSED BY '"',

gnis_latitud_fuente_dec FILLER DECIMAL EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_long_fuente_dec FILLER DECIMAL EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_elevacion DECIMAL EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_poblacion INTEGER EXTERNAL TERMINATED BY "," ENCLOSED BY '"',

gnis_nomb_celula CHAR TERMINATED BY "," ENCLOSED BY '"'

)

Page 13: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

• El comando usado para iniciar esta carga necesita invocar a SQL*Loader y apuntar al archivo de control (control file) que

describirá los datos.• Desde que el nombre del archivo de entrada no esta proveido en control file, el nombre tambien necesita ser pasado en el comando de línea:

La Línea de Comando (sqlldr)

sqlldr instructor/oracle@orcl control=c:\gnis.ctl log=c:\gnis.log data=c:\gnisdata.dat

password

user name control file

database name

log file

data file

Page 14: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Page 15: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

El Archivo LOG (log file)

SQL*Loader: Release 10.2.0.3.0 - Production on Dom Jul 1 21:13:11 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Archivo de Control: f:\gnis\gnis.ctl

Archivo de Datos: f:\gnis\gnisdata.dat

Archivo de Errores: f:\gnis\gnisdata.bad

Desechar Archivo: ninguno especificado

(Permitir todos los registros desechados)

Número a cargar: ALL

Número a ignorar: 0

Errores permitidos: 50

Matriz de enlace: 64 filas, máximo de 256000 bytes

Continuación: ninguno especificado

Ruta de acceso utilizada: Convencional

Page 16: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Tabla GNIS_NOMBREGEO, cargada de cada registro lógico.

Opción INSERT activa para esta tabla: APPEND

Nombre Columna Posición Long Term Entorno Tipo de Dato

------------------------------ ---------- ----- ---- ---- ---------------------

GNIS_ABREV_ESTADO FIRST * , " CHARACTER

GNIS_NOMB_DESCRIP NEXT * , " CHARACTER

GNIS_TIPO_CARACTERIS NEXT * , " CHARACTER

GNIS_NOMB_CONDADO NEXT * , " CHARACTER

GNIS_COD_FED_ESTADO NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_COD_FED_CONDADO NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_LATITUD_PRIMARIA NEXT * , " CHARACTER

GNIS_LONG_PRIMARIA NEXT * , " CHARACTER

GNIS_LATITUD_PRIMARIA_DEC NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_LONG_PRIMARIA_DEC NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_LATITUD_FUENTE NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_LONG_FUENTE NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_LATITUD_FUENTE_DEC NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_LONG_FUENTE_DEC NEXT * , " CHARACTER (CAMPO FILLER)

GNIS_ELEVACION NEXT * , " CHARACTER

GNIS_POBLACION NEXT * , " CHARACTER

GNIS_NOMB_CELULA NEXT * , " CHARACTER

Registro 1001: Rechazado - Error en tabla GNIS_NOMBREGEO, columna GNIS_ABREV_ESTADO.

Columna no encontrada antes del fin de registro lógico (utilice TRAILING NULLCOLS)

Page 17: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Tabla GNIS_NOMBREGEO:

1000 Filas se ha cargado correctamente.

1 Fila no cargada debido a errores de datos.

0 Filas no cargada porque todas las cláusulas WHEN han fallado.

0 Filas no cargada porque todos los campos eran nulos.

Espacio asignado a matriz de enlace: 148608 bytes (64 filas)

Bytes de buffer de lectura: 1048576

Total de registros lógicos ignorados: 0

Total de registros lógicos leídos: 1001

Total de registros lógicos rechazados: 1

Total de registros lógicos desechados: 0

La ejecución empezó en Dom Jul 01 21:13:11 2007

La ejecución terminó en Dom Jul 01 21:13:21 2007

Tiempo transcurrido: 00:00:09.87

Tiempo de CPU: 00:00:00.17

Page 18: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Carga de Datos: SQL*Loader

•El archivo de control (.ctl ) le comunica a SQL*Loader el proceso de interpretación los registros de datos que va leyendo del archivo de datos de INPUT. Este archivo provee la siguiente información al SQL*Loader:

•el nombre y localización del archivo de datos de input

• el formato de los registros en el archivo de datos de input.

• el nombre de la tabla o tablas a ser cargadas

• la correspondencia entre los campos en el registro de input y las

columnas en las tablas de la base de datos siendo cargada

• criterio de selección definiendo cuales de los registros del

archivo de input contienen datos a ser insertados dentro de las

tablas de la base de datos destino

• los nombres y localizaciones del bad file y del discard file

Page 19: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

C:\ edit personas.ctl

-- Note, esto es como se empotra comentarios

-- en un archivo de control SQL*LoaderLOAD DATA -- parte 1

INFILE „personas.dat‟ -- parte 2

INTO TABLE personas -- parte 3

(nombre position (1:14) char, -- inicio de parte 4

apellido position (15:26) char,

numclase position (29:36) char,

fecha_contrato position (37:42) date “DD-MON-YY”)

C:\

Page 20: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Parte 1: LOAD DATA sirve como punto de partida para el resto

del archivo.

Parte 2: INFILE esta línea nombra el archivo de entrada. Se

pueden cargar varios archivos de datos en la misma sesión

especificando varias sentencias INFILE:

INFILE „midata1.dat‟

INFILE „midata2.dat‟

Parte 3: INTO TABLE esta línea instruye a SQL*Loader sobre

donde colocar los datos cuando se cargan en Oracle. Existen 4

modificadores para esta orden:

Page 21: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

1. INSERT indica que la tabla estará vacía cuando comience

la carga

2. APPEND añade nuevas filas al contenido existente en la

tabla

3. REPLACE usa una sentencia SQL DELETE para borrar las

filas de la tabla y carga las nuevas filas

4. TRUNCATE usa una sentencia SQL TRUNCATE para

eliminar todos los datos existentes desde las tablas siendo

cargadas, se comporta igual que REPLACE.

Normalmente no se incluye el calificador INSERT, ya que

es el valor predeterminado o default

Page 22: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Parte 4: Especificaciones de columna y campo en esta

sección del archivo de control establece la correspondencia

entre los caracteres del archivo de entrada y las columnas

de la tabla de destino. Ejemplo:

(enumero position (01:04),

enombre position (06:15),

cargo position (17:25),

administrador position (27:30),

salario position (32:39),

comision position (41:48),

numeroDpto position (50:51))

Page 23: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

• El archivo log ( .log ) es un archivo histórico que almacena

información referente a las operaciones de carga de datos.

• El archivo de filas rechazadas ( .bad ) es un archivo que

registra las filas dañadas provenientes del proceso de tomar los

registros del archivo de datos para insertarlos en la tabla de base

de datos, esto sucede cuando no existe equivalencias de datos

de los registros fuentes con los registros destinos.

• El archivo de filas descartadas ( .dsc ) es un archivo que

registra las filas desechadas por no cumplir con las condiciones

impuestas dentro del archivo de control

Page 24: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Proceso de Cargado de Datos

Traspasar o migrar datos desde un sistema existente a un

escenario Oracle conlleva dos pasos:

1. Crear una copia del archivo de texto que contiene los

datos existentes (no Oracle), utilizando el software actual.

2. Cargar los datos desde dicho archivo de texto a Oracle

por medio de SQL*Loader.

Page 25: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (1/4)

• Supongamos que tenemos un archivo de datos plano (flat) o

archivo de datos de input (adi), „datos.dat‟, cuyo contenido es

el siguiente:

1#Antonio#cliente#

2#Miguel#socio#

3#Luis#gerente#

• Este archivo de datos es el indicado para una tabla concreta

que tenga la misma estructura de campos, como podría ser lo

siguiente:

registro 1

registro 2

registro 3

Page 26: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (2/4)

SQL> describe personas

Nombre ¿Nulo? Tipo

-------------------------------- -------------- ----------------------------

ID NOT NULL NUMBER(1)

NOMBRE NOT NULL VARCHAR2(20)

TIPO NOT NULL VARCHAR2(10)

• Como vemos en el archivo de datos, todos los campos de cada

registro coinciden perfectamente con el respectivo campo de la tabla (a

la que hemos llamado personas)

Page 27: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (3/4)

•Si queremos realizar la carga de los tres registros

almacenados, necesitaríamos hacer un archivo de control

(CONTROL.CTL) cuyo contenido podría ser el siguiente:

LOAD DATA

INFILE „a:\datos.dat‟

INTO TABLE personas

fields terminated by “#”

(id integer external,

nombre char,

tipo char)

le dice al SQL*Loader que un campo es

el entero representado usando los

dígitos texto del “0” al “9”

le dice al SQL*Loader que un campo es un

valor decimal representado usando los

dígitos texto del “0” al “9” y un punto

decimal opcional (“.”).

decimal external

Page 28: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (4/4)

• Con todo lo anterior ya podríamos invocar al utilitario sqlldr para que realizara la carga del archivo de datos en la tabla personas para ello, desde la línea de comandos del sistema operativo, lanzaríamos la siguiente sentencia:A:\>sqlldr “username”/”password” control = a:\file.ctl log = a:\file.log bad = a:\file.bad discard = a:\file.dsc

username = nombre del usuario

password = clave del usuario

Page 29: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Ejecución de una operación con SQL*Loader

C:\>sqlldr alumno/oracle control=a:\file.ctl log=a:\file.log bad=a:\file.bad

discard=a:\file.dsc

SQL*Loader: Release 8.1.7.0.0 - Production on Mié Jun 19 03:28:03 2002

(c) Copyright 2000 Oracle Corporation. All rights reserved.

Punto de validación alcanzado - recuento de registros lógicos 2

Punto de validación alcanzado - recuento de registros lógicos 3

C:\>

Page 30: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Datos Cargados con SQL*Loader

SQL> select * from cargador;

ID NOMBRE TIPO

---------- -------------------- ----------

1 Antonio cliente

2 Miguel socio

3 Luis gerente

Page 31: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Modo de Carga de Datos

•El utilitario SQL*Loader tiene dos modos de operación:

Modo convencional y Modo directo

•Modo Convencional

Este método que usa SQL*Loader por defecto (parámetro

DIRECT=FALSE), el cual usa sentencias SQL de inserción

para introducir los registros del fichero de datos en las tablas

de la base de datos. Método más lento que el directo

Page 32: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Modo de Carga de Datos (cont.)

•Modo Directo

Usando este modo (parámetro DIRECT=TRUE), el utilitario no

construye sentencias SQL para insertar los registros del fichero

de datos en las tablas de la base de datos, sino que analiza

cada uno de los registros para convertirlos, campo a campo, en

sus correspondientes tipos de datos de la tabla, construyendo

así una estructura diferente de inserción

Page 33: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Cargando Datos: Ejemplo 1

• pretendemos hacer una carga de gran tamaño y que se

requieren ejecutar múltiples sesiones de carga a un

mismo tiempo.

Componente ValorNombre del usuario smith

Password baby

Archivo de control portnoy

Load todos los registros

Parallel sí

Direct no

Sqlldr smith/baby control = portnoy parallel = true

Page 34: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Cargando Datos: Ejemplo 2

• hacer una carga de 1,000 registros adicionales. En una sesión anterior

se cargaron los registros comprendidos entre 1 y 499. Para acelerar las

cosas, deseamos utilizar un camino de carga directa con sesiones

paralelas

Componente Valor

Nombre del usuario esther

Password koolmarzo

Archivo de control kool2004.crl

Skip 500

Direct sí

Load 1000

Parallel sí

sqlldr esther/koolmarzo control = kool2004.crl parallel = true direct = true skip = 500 load = 1000

Page 35: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Cargando Datos: Ejemplo 3

• deseamos cargar los números de registro 501 a 520,

utilizando el mecanismo de cargas directas

Componente Valor

Nombre del usuario janet

Skip 500

Direct sí

Load 20

sqlldr janet direct=true skip=500 load=20

Page 36: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Carga de Datos de Longitud Fija: Ejemplo 4

7782 CLARK administrador 7839 2572.50 15/11/01 107839 REYES presidente 7542 5500.00 12/10/02 107934 MILLER empleado 7782 920.00 08/06/03 107566 JONES administrador 7839 3123.75 10/07/03 207499 ALVA vendedor 7698 820.00 02/08/03 307654 MARTIN vendedor 7810 1400.00 02/02/04 307658 CHANG analista 7566 3450.00 06/06/04 20

5 12 27 33 41 50

identificación

apellido

cargo

ID de administrador

sueldo

fecha de contrato

ID de departamento

Page 37: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

• muestra del archivo de control SQL*Loader = archivo.ctl:LOAD DATA

INFILE „a:\cargame.dat‟ nombre del fichero conteniendo los

datos a ser cargados

INTO TABLE empleados

(enumero position(01:05),

enombre position(07:12),

cargo position(14:27),

administrador position(29:34),

salario position(36:43),

fechaCont position(45:52) date “DD-MM-YY”,

numeroDpto position(54:55))

Page 38: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

Carga de Datos de Longitud Variable: Ejemplo 5

A:\>describe hawb

Table or View hawb

Name Null? Type

hawb_no varchar2(10)

hawb_origen varchar2(10)

hawb_destino varchar2(10)

hawb_remitente varchar2(80)

Los datos consisten de dos registros que se cargaran en

la tabla.

7457820812,,‟BAH‟,”PROPULSION PACIFICO INC”

989714666,”LAX”,”BRU”,”SERVICIO DE MOTORES”

registro 1

registro 2

Page 39: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

El archivo de Control que se usará es:

LOAD DATA

INFILE „a:\4104.dat‟

BADFILE „a:\hawb.bad‟

DISCARDFILE „a:\hawb.dsc‟

APPEND

INTO TABLE hawb

FIELDS TERMINATED BY „,‟ OPTIONALLY ENCLOSED BY “ “

TRAILING NULLCOLS

(hawb_no,

hawb_origen,

hawb_destino,

hawb_remitente)

Page 40: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

En este ejemplo se muestra que no es necesario que los

datos se encuentren en un archivo de datos; se puede

empotrar en un archivo de control. La palabra BEGINDATA

indica que todas las líneas que le siguen son registros de

datos que se deben usar como el origen de entrada de este

archivo de control.

El archivo de control siguiente es un ejemplo para este tipo de

carga:

Carga con Datos Empotrados: Ejemplo 6

Page 41: SQL Loader Ms Xp

UNIVERSIDAD PRIVADA ANTENOR ORREGOEscuela de Ingeniería de Computación y SistemasElmer González Herrera BASE DE DATOS - Curso 2009 I

LOAD DATA

INFILE *

APPEND

INTO TABLE cuentas

FIELDS TERMINATED BY „,‟ OPTIONALLY ENCLOSED BY „ ” ‟

(clie_num, cuen_num, cuen_nombre)

BEGINDATA

0000324,89073,AHORROS

0000324,89074,CHEQUES

0000075,111,AHORROS

0011102,800,CHEQUES

0000068,23338,CHEQUES