Hola,
Tengo la siguiente tabla,
Código:
SQL> desc loader;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(30)
SQL> select * from loader;
no rows selected
Con este fichero de control del SQL*Loader,
Código:
oracle@buo:~/scripts/data> more control.ctl
load data
infile 'nombres.dat'
into table loader
fields terminated by '|' optionally enclosed by '"'
(
id,
name
)
Y este es el fichero de datos, como veras tiene 3 columnas y la tabla solo tiene 2
Código:
oracle@buo:~/scripts/data> more nombres.dat
1|"nombre 1"|"apellido"
2|"nombre 2"|"apellido"
3|"nombre 3"|"apellido"
4|"nombre 4"|"apellido"
5|"nombre 5"|"apellido"
6|"nombre 6"|"apellido"
7|"nombre 7"|"apellido"
8|"nombre 8"|"apellido"
Realizamos la carga, y como es de esperar, carga las primeras 2 columnas del fichero de datos.
Código:
oracle@buo:~/scripts/data> sqlldr / control=control.ctl data=nombres.dat
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Nov 18 11:52:59 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Commit point reached - logical record count 8
SQL> select * from loader;
ID NAME
---------- ------------------------------
1 nombre 1
2 nombre 2
3 nombre 3
4 nombre 4
5 nombre 5
6 nombre 6
7 nombre 7
8 nombre 8
8 rows selected.
Ahora, empezamos de nuevo.
Código:
SQL> truncate table loader;
Table truncated.
Modifico el fichero de control agregando un filler en la segunda columna, para que la ignore, es decir no la mapea a ninguna columna de la tabla.
Código:
oracle@buo:~/scripts/data> more control.ctl
load data
infile 'nombres.dat'
into table loader
fields terminated by '|' optionally enclosed by '"'
(
id,
null filler,
name
)
Ejecutamos la carga nuevamente,
Código:
oracle@buo:~/scripts/data> sqlldr / control=control.ctl data=nombres.dat
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Nov 18 11:54:11 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Commit point reached - logical record count 8
SQL> select * from loader;
ID NAME
---------- ------------------------------
1 apellido
2 apellido
3 apellido
4 apellido
5 apellido
6 apellido
7 apellido
8 apellido
8 rows selected.
Y listo, ya esta la tercera columna del fichero de datos cargada en la segunda columna de la tabla.
Saludos.