Cómo insertar datos en una tabla con SQLLoader.
En primer lugar y como es obvio tenemos que tener instalado SQLLoader en nuestra máquina. En este artículo daremos por supuesto que ya está instalado.
Necesitaremos dos ficheros, uno de control con la extensión .ctl en el que se indicará:
- En qué tabla vamos a insertar los datos.
- Qué campos de la tabla vamos a insertar.
- Qué tipo de tratamiento le vamos a dar a los datos a insertar.
- Donde está el fichero que contiene los datos.
Un segundo fichero contendrá los datos y tendrá tipicamente la extensión .dat
Veremos un sencillo ejemplo de ambos ficheros:
atica_imagenes.ctl
--Sql*Loader Control File LOAD DATA
INFILE 'atica_imagenes.dat'
APPEND
INTO TABLE atica_imagenes
FIELDS TERMINATED BY ','
(COD_IMAGEN CHAR(1),
DES_IMAGEN CHAR(256),
COLOR_BN CHAR(1),
FORMATO CHAR(3),
EXT_FNAME FILLER CHAR(90),
IMAGEN_LOBFILE(EXT_FNAME) TERMINATED BY EOF)
Podemos ver que se indica con INFILE el fichero donde va n a estar los datos.
El comando APPEND indica cómo se van a insertar las filas. Las posibilidades más comunes que tenemos para insertar filas son:
- INSERT: Cuando la tabla destino está vacía
- REPLACE: Borra todas las filas existentes y se vuelve a hacer la carga
- APPEND: Inserta las filas indicadas manteniendo las existentes. Si hubiese algún problema con las constraints se detectaría.
- TRUNCATE. Igual que REPLACE pero tuncando la tabla
A continuación se indica la tabla donde insertar las filas con el comando INTO TABLE
Se especifica como van a estar separados los campos en el fichero de datos, lo normal será con una coma.
Por último se indican los campos de la tabla en que se van a insertar los datos y cual es el tamaño.
La fila que contiene EXT_FNAME FILLER CHAR(90) indica el tamaño máximo que va a tener el nombre del fichero que se va a incluir en un campo tipo blob, incluyendo el path, en el fichero de datos.
atica_imagenes.dat
1,escudoumbn55x55,B,jpg,/home/pacom/documentos/trabajo/XMLListados/sqlldr/imagenes/escudoumbn55x55.jpg
2,escudoumc55x55,C,jpg,/home/pacom/documentos/trabajo/XMLListados/sqlldr/imagenes/escudoumc55x55.jpg
Podemos ver que tenemos cinco campos separados por comas, tal y como lo indicamos en el fichero de control.
Por último lanzaremos el sqlldr indicandole el usuario, la base de datos a conectar y el fichero de control a utilizar.
sqlldr userid=mncs@venus control=atica_imagenes.ctl
Para obtener más información acerca del sqlldr se puede consultar el Oracle 8i Utilities.
Fecha de publicación: 05/01/2005
Autor: Francisco García Mateo. pacom@um.es |