- La commande sqlldr prend la syntaxe suivante :
sqlldr \
userid=${DB_CONX} \
data=${FICDAT} \
control=${FICCTL} \
log=${FICLOG} \
bad=${FICBAD} \
silent=\(header,feedback,discards\) \
errors=9999999 \
direct=true
(pour rappel, un article précédent conseille d'augmenter bindsize et readsize)
Contrôler l'absence d'erreur SQL*Loader-2026 (elle signifie que l'import s'est arrêté).
- Charger la **00 par LOAD normal
- Dans le fichier de contrôle préciser pour la TD11 l'option 'SINGLEROW' .
- Si les tables sont partitionnées préciser la partition ciblée
Fichier de commandes (exemple avec ZXTD11) :
LOAD INFILE SYSZX.DAT APPEND PRESERVE BLANKS INTO TABLE HR.ZXTD11
SINGLEROW
PARTITION(MT201501) WHEN ( 5:8 ) = 'ZX*1'
( NUDOSS POSITION ( 0009 ) INTEGER EXTERNAL ( 10 ) ,
CDSOC POSITION ( 0019 ) CHAR ( 0003 ) ,
PGPDOS POSITION ( 0022 ) INTEGER EXTERNAL ( 10 ) ,
...
- L'import va dévalider certaines contraintes référentielles et des index .
Pour générer les ordres SQL (ici sur ZX) :
select 'ALTER TABLE '||table_name||' ENABLE CONSTRAINT '||constraint_name ||';' from all_constraints where table_name like 'ZX%' and STATUS = 'DISABLED';
et
select table_name, index_name , status from all_indexes where table_name like 'ZX%' and STATUS not in ('VALID','USABLE','N/A') ;
select index_name, partition_name, status from all_ind_partitions where index_name in ( select index_name from all_indexes where table_name like 'ZX%' ) and STATUS not in ('VALID','USABLE','N/A') ;