ORACLE SQL*Loader chargement de donneés partie 2

-->

le fichier de control pour SQL*loader est le suivant :
LOAD | CONTINUE_LOAD [DATA]
[CHARACTERSET charset] [specification d'ordre]
[INFILE clause [INFILE clause...]]
[MAXRECORDSIZE octets
[READBUFFERS entier]
[INSERT | APPEND | REPLACE | TRUNCATE]
Règles de concatenation ]]
INTO TABLE clause [INTO TABLE clause...]

LOAD : est la principale clause dans un fichier de contrôle ; elle définit la façon dont sql*loader interprète les données ou les trouver ou les insérer, une autre sœur moins connue de LOAD est CONTINUE_LOAD utilisée pour reprendre un chargement interrompu.

CHARACTERSET utilisé pour spécifier le charset utilisé dans le fichier de données.

INFILE spécifie le chemin ou se trouve le fichier données, le format détaillé est le suivant :
{INFILE {filename|*} [os_specific_options]
[ BADFILE badfile_name]
[DISCARDFILE discardfile_name]
[{DISCARDS | DISCARDMAX} discardmax]

  1. Filename est le nom complet du fichier de données, si on utilise * alors les données sont inclus dans le fichier de control
  2. Badfile facultatif le fichier ou seront rejeter les enregistrements si il y a erreur; on peut aussi utiliser le paramètre BAD avec la commande sqlldr….bad=erreur.bad…
  3. Discardfile facultatif aussi, on peut utiliser son équivalent le paramètre DISCARD dans la ligne de commande, il spécifie le fichier ou seront rejetés les enregistrements qui ne satisfont pas une condition WHEN dans un chargement conditionnel.
  4. Discards ou Discardmax est le nombre maximum d’enregistrements rejetés par la clause WHEN avant d’interrompre le chargement par défaut pas de limite.
Pour moi le plus important c’est le OS_SPECIFIC_OPTIONS qui informe sql*loader comment interpréter le type de lignes, sql*loader supporte trois format de lignes :

"" Pour les lignes en format Stream; la ligne est terminer par un retour à la ligne, noter qu’on peut spécifier un autre terminateur des lignes en utilisant "STR ‘|’ " ou | est le caractère de fin de ligne.


-->
Exemple :
Jean,malibou,21
Said,asso,30
Jack,shepard,22


"FIX longueur" pour les lignes en longueur fixe par exemple "Fix 15" pour une ligne de longueur 15.
Exemple de données :
La nouvelle,1234
L’ancienne,1456

"VAR longueur_champ " pour les lignes en format variables et pour les quels le terminateur de ligne change vous devez spécifier un champ de longueur au début de chaque ligne
Exemple de données :
011hello,james
009jean,good
013Blabla,blalba

Connaitre le format de ligne approprié est primordial pour faire un chargement réussi, imaginer un fichier de 3Go avec des longueurs de lignes variables et des retours à la ligne dans les champs et des séparateurs de champs différents , et que vous ne pourrez pas régénérer le fichier avec un format approprié !!
On continuera avec les autres clauses dans les prochaines posts.