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
Toutes les lignes sont de longueur fixe (ici, juste une petite partie des colones, sinon on s'en sort plus
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)
J'exécute
Mon fichier de format est bon
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 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
Partager