Sei sulla pagina 1di 41

Fundamentos, Diseo, e Implementacin, 7/e

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

En este captulo, usted aprender:


SQL* Loader El Misterioso Control File Campos y Tipos de Datos Carga de archivos de longitud fija Carga de datos delimitados Validacin y Seleccin de datos cargados

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Pg. 2/51

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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.
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

El Escenario de SQL*Loader
Archivo de Control (DDL)

Archivo de Datos de INPUT

datos

SQL*Loader

datos

Base de Datos ORACLE

registros no seleccionados para el cargado Archivos de filas descartadas Discard File


UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

registros que causan errores Archivo de Log Log File Archivos de filas rechazadas Bad File

Un Pequeo Ejemplo de SQL*Loader


Los Datos: un archivo texto con las descripciones geogrficas del estado de Michigan, USA.

"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"
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

"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"

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 mxima de cada campo. Usaremos luego las sentencias SQL para crear la tabla en el cual todos los datos ser cargados.
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Descripcin de los Campos del archivo GNIS


El archivo GNIS (sistema de informacin de nombres geogrficos), tiene la siguiente caracterstica:
NUMERO DE CAMPO 1 2 3 4 LONGITUD DE CAMPO 2 60 9 35 CONTENIDO Cdigo de estado alfanumrico Nombre geogrfico caracterstico Tipo caracterstico Nombre del condado

5
6 7 8 9 10

2
3 7 8 8 8

Cdigo Federal del estado


Cdigo Federal del condado Latitud primaria en grados, minutos y segundos Longitud primaria en grados, minutos y segundos Latitud primaria en grados decimales Longitud primaria en grados decimales

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

NUMERO DE CAMPO 11 12 13 14 15 16 17

LONGITUD DE CAMPO 7 8 8 8 5 10 30

CONTENIDO Latitud fuente en grados, minutos y segundos Longitud fuente en grados, minutos y segundos Latitud fuente en grados decimales Longitud fuente en grados decimales Elevacin (pies sobre el nivel del mar) Poblacin estimada Nombre del sistema geogrfico norteamericano

Use la prxima sentencia SQL para crear la tabla en el cual todo estos datos debern ser cargados.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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.
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

El archivo de Control (Control File)


El siguiente Control File ser usado para cargar datos de nombres geogrficos caractersticos 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 clasula INTO TABLE:
APPEND INTO TABLE gnis_nombregeo

APPEND le dice a SQL*Loader que preserve cualquier preexistente dato en la tabla

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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 '"' )
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

La Lnea de Comando (sqlldr)


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 lnea:
user name control file log file

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


password database name data file

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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) Nmero a cargar: ALL Nmero a ignorar: 0 Errores permitidos: 50 Matriz de enlace: 64 filas, mximo de 256000 bytes Continuacin: ninguno especificado Ruta de acceso utilizada: Convencional

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Tabla GNIS_NOMBREGEO, cargada de cada registro lgico. Opcin INSERT activa para esta tabla: APPEND
Nombre Columna Posicin 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 lgico (utilice TRAILING NULLCOLS)
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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 clusulas WHEN han fallado. 0 Filas no cargada porque todos los campos eran nulos.

Espacio asignado a matriz de enlace: Bytes de buffer de lectura: 1048576

148608 bytes (64 filas)

Total de registros lgicos ignorados: 0 Total de registros lgicos ledos: 1001 Total de registros lgicos rechazados: 1 Total de registros lgicos desechados: 0 La ejecucin empez en Dom Jul 01 21:13:11 2007 La ejecucin termin en Dom Jul 01 21:13:21 2007 Tiempo transcurrido: 00:00:09.87 Tiempo de CPU: 00:00:00.17

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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 interpretacin los registros de datos que va leyendo del archivo de datos de INPUT. Este archivo provee la siguiente informacin al SQL*Loader:
el nombre y localizacin 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 seleccin 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
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

C:\ edit personas.ctl


-- Note, esto es como se empotra comentarios -- en un archivo de control SQL*Loader
LOAD 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:\

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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 lnea nombra el archivo de entrada. Se pueden cargar varios archivos de datos en la misma sesin especificando varias sentencias INFILE: INFILE midata1.dat INFILE midata2.dat Parte 3: INTO TABLE esta lnea instruye a SQL*Loader sobre donde colocar los datos cuando se cargan en Oracle. Existen 4 modificadores para esta orden:

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

1. INSERT indica que la tabla estar vaca cuando comience la carga 2. APPEND aade 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

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Parte 4: Especificaciones de columna y campo en esta seccin del archivo de control establece la correspondencia entre los caracteres del archivo de entrada y las columnas de la tabla de destino. Ejemplo: (enumero enombre cargo administrador salario comision numeroDpto
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

position position position position position position position

(01:04), (06:15), (17:25), (27:30), (32:39), (41:48), (50:51))

El archivo log ( .log ) es un archivo histrico que almacena informacin referente a las operaciones de carga de datos. El archivo de filas rechazadas ( .bad ) es un archivo que registra las filas daadas 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

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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#

registro 1 registro 2 registro 3

Este archivo de datos es el indicado para una tabla concreta que tenga la misma estructura de campos, como podra ser lo siguiente:
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (2/4)


SQL> describe personas Nombre Nulo? -------------------------------- -------------ID NOT NULL NOMBRE NOT NULL TIPO NOT NULL

Tipo ---------------------------NUMBER(1) VARCHAR2(20) 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)

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (3/4)


Si queremos realizar la carga de los tres registros almacenados, necesitaramos hacer un archivo de control (CONTROL.CTL) cuyo contenido podra 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 dgitos texto del 0 al 9

decimal external le dice al SQL*Loader que un campo es un valor decimal representado usando los dgitos texto del 0 al 9 y un punto decimal opcional (.).

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Ejemplo de Cargado de Datos (4/4)


Con todo lo anterior ya podramos invocar al utilitario sqlldr para que realizara la carga del archivo de datos en la tabla personas para ello, desde la lnea de comandos del sistema operativo, lanzaramos 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

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Ejecucin de una operacin 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 validacin alcanzado - recuento de registros lgicos 2 Punto de validacin alcanzado - recuento de registros lgicos 3 C:\>

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Datos Cargados con SQL*Loader

SQL> select * from cargador; ID NOMBRE ---------- -------------------1 Antonio 2 Miguel 3 Luis TIPO ---------cliente socio gerente

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Modo de Carga de Datos


El utilitario SQL*Loader tiene dos modos de operacin: Modo convencional y Modo directo Modo Convencional Este mtodo que usa SQL*Loader por defecto (parmetro DIRECT=FALSE), el cual usa sentencias SQL de insercin para introducir los registros del fichero de datos en las tablas de la base de datos. Mtodo ms lento que el directo

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Modo de Carga de Datos (cont.)


Modo Directo Usando este modo (parmetro 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 insercin

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Cargando Datos: Ejemplo 1


pretendemos hacer una carga de gran tamao y que se requieren ejecutar mltiples sesiones de carga a un mismo tiempo. Componente Valor

Nombre del usuario Password Archivo de control Load Parallel Direct

smith baby portnoy todos los registros s no

Sqlldr smith/baby control = portnoy parallel = true


UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Cargando Datos: Ejemplo 2


hacer una carga de 1,000 registros adicionales. En una sesin 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
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Cargando Datos: Ejemplo 3


deseamos cargar los nmeros de registro 501 a 520, utilizando el mecanismo de cargas directas

Componente Nombre del usuario Skip Direct Load

Valor janet 500 s 20

sqlldr janet direct=true skip=500 load=20

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Carga de Datos de Longitud Fija: Ejemplo 4


identificacin cargo sueldo ID de departamento

5
7782 7839 7934 7566 7499 7654 7658

12

27
7839 7542 7782 7839 7698 7810 7566

33

41

50
10 10 10 20 30 30 20

CLARK REYES MILLER JONES ALVA MARTIN CHANG

administrador presidente empleado administrador vendedor vendedor analista

2572.50 5500.00 920.00 3123.75 820.00 1400.00 3450.00

15/11/01 12/10/02 08/06/03 10/07/03 02/08/03 02/02/04 06/06/04

apellido

ID de administrador

fecha de contrato

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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))

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Carga de Datos de Longitud Variable: Ejemplo 5


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

A:\>describe hawb Table or View hawb Name Null? hawb_no hawb_origen hawb_destino hawb_remitente
UNIVERSIDAD PRIVADA ANTENOR ORREGO
Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Type varchar2(10) varchar2(10) varchar2(10) varchar2(80)

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)

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Carga con Datos Empotrados: Ejemplo 6


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 lneas 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:

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez 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

UNIVERSIDAD PRIVADA ANTENOR ORREGO


Escuela de Ingeniera de Computacin y Sistemas
Elmer Gonzlez Herrera BASE DE DATOS - Curso 2009 I

Potrebbero piacerti anche