Bonjour

J'ai un problème d'insertion avec un fichier texte et la commande BULK INSERT

J'ai un gros fichier texte que je découpe en plusieurs petits correspondant à chaque table à mettre à jour (je ne peux pas faire autrement, le fichier texte ne vient pas de moi (et en plus je suis même pas sûr que ca se passe exactement comme ca, c'est pas moi qui ai fais ni la procédure, ni le programme de découpage (dont la soure est indisponible, car perdue dans les méandres des serveurs du boulot) )).

Ensuite, j'importe les données de chaque table (qui sont dans un petit fichier texte), dans une table tampon

Par exemple, j'ai une table TBL_AFFAIRE à mettre à jour, j'ai un fichier TBL_AFFAIRE.txt (tous les noms doivent correspondre, car la procédure stockée se base sur le nom de fichier pour créer ou mettre à jour la table) contenant le texte suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
00000001CONCESSION RENAULT A CHATOU             GARAGE DE LA RESIDENCE SCA         
00000002S.D.A.O.                                STE DE DIFFUSION AUTOMOBILE D'ORSAY
00000003SA ETS JEAN CHANOINE                    ETS JEAN CHANOINE SA               
00000004CHANOINE PERCHE AUTOMOBILES             Chanoine Perche automobiles SA
Toutes les lignes sont de longueur fixe (ici, juste une petite partie des colones, sinon on s'en sort plus )
J'exécute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
BULK INSERT TBL_AFFAIRE FROM 'D:\Fichiers_Entree\TBL_AFFAIRE.txt'
WITH (FORMATFILE = 'D:\Format_BCP\TBL_AFFAIRE.fmt',
      ROWS_PER_BATCH = 5000,
      MAXERRORS = 1,
      CODEPAGE = 'ACP')
Mon fichier de format est bon
Mon fichier de données est lisible dans bloc-notes, et dans notepad++
Il n'y a pas de caractères dit "à la con" qui se sont glissés dans le fichier (controlé avec l'éditeur hexa de notepad++)
Quand je l'importe manuellement dans Entreprise Manager, ca fonctionne
Mais avec le bulk insert, j'ai des ?????? partout dans ma base de données (et du coup la contrainte de clef primaire n'est pas respectée )

J'ai pensé à essayer de changer le CODEPAGE, mais en OEM ou en RAW, ca fait exactement pareil