J'ai essayé de charger certaines données à partir d'un fichier CSV sur la base de certaines conditions et je suis limité par l'utilisation du contrôle "OU" dans la clause (Oracle ctl) les données des charges pour les 11 premières conditions, mais ne charge aucun données après le premier 11 étatDonnées Oracle ne se charge pas après POSITION (10)
Ci-dessous l'exemple de code
create table t1 (
c1 varchar(10),
c2 varchar(10),
c3 varchar(10)
)
---------- ------ dataloader -----
options(errors=20000)
LOAD DATA
INFILE 'D:\Scripts\abc.csv'
BADFILE 'D:\Scripts\abc.BAD'
DISCARDFILE 'D:\Scripts\abc.DIS'
DISCARDMAX 20000
insert
INTO TABLE t1
when c1='James'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1,
c2,
c3
)
INTO TABLE t1
when c1='John'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1 POSITION(1),
c2,
c3
)
INTO TABLE t1
when c1='Sam'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1 POSITION(2),
c2,
c3
)
.
.
.
INTO TABLE t1
when c1='Mark'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1 POSITION(12),
c2,
c3
)
-------------- ----- dataloader exécution
sqlldr scott/tiger direct=true control='filepath'