je m'essplique je dois insérer des fichers csv dans une table de manière régulière. Les fichiers m'arrivent tous les mois, et je souhaiterais automatiser la procédure.
Auparavant, je fonctionnais comme suit ;

LOAD DATA INFILE 'C:\DATAS092008.csv'
TRUNCATE
INTO TABLE TBL_RSI_00_IMPORT
FIELDS TERMINATED BY ';'
(ID, INSEE,NOM)
Et ça marche nickel.

Sauf qu'inclure le nom du fichier de donnée directement DANS le fichier de contrôle ne m'arrange pas si la tâche est répétées pour d'autres fichiers de données qui ont comme nom DATAS[MMYYYY].csv.
Je crée donc un fichier de contrôle qui contient ;

LOAD INFILE
TRUNCATE INTO TABLE TBL_RSI_00_IMPORT
FIELDS TERMINATED BY ';'
(ID, INSEE, NOM)
et j'appelle sqlldr comme suit ;

sqlldr usr/pwd@cnx control='C:\CTRL.sql' data='C:\DATAS.csv'
et j'obtient
SQL*Loader-601: Option INSERT : la table doit Ûtre vide. Erreur dans la table TBL_RSI_00_IMPORT
Je précise que si dans le fichier de contrôle je met INSERT, ça fonctionne bien si la table est vide.

J'en déduis que INSERT ça marche avec un ficher de données externalisé, mais pas TRUNCATE ????



Et là, je reste bouche béée ... voire BEUAAAAAAAAAAAaaaaaaaaaaah



Merci par avance de votre aide ...