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 ;
Et ça marche nickel.LOAD DATA INFILE 'C:\DATAS092008.csv'
TRUNCATE
INTO TABLE TBL_RSI_00_IMPORT
FIELDS TERMINATED BY ';'
(ID, INSEE,NOM)
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 ;
et j'appelle sqlldr comme suit ;LOAD INFILE
TRUNCATE INTO TABLE TBL_RSI_00_IMPORT
FIELDS TERMINATED BY ';'
(ID, INSEE, NOM)
et j'obtientsqlldr usr/pwd@cnx control='C:\CTRL.sql' data='C:\DATAS.csv'
Je précise que si dans le fichier de contrôle je met INSERT, ça fonctionne bien si la table est vide.SQL*Loader-601: Option INSERT : la table doit Ûtre vide. Erreur dans la table TBL_RSI_00_IMPORT
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 ...
Partager