2009-08-18 7 views
1

Je rencontre des problèmes lors de l'insertion en bloc de données dans ma base de données SQL Express 2005.L'insertion en bloc dans SQL Server Express 2005 ne fonctionne pas

J'utilise le code suivant:

BULK INSERT [dbEPi].[dbo].[postcode] 
FROM 'C:\Development\postnummerRegister.txt' 
WITH 
(
    FIELDTERMINATOR = '\t', 
    ROWTERMINATOR = '\n' 
) 

et je reçois l'erreur suivante:

Msg 4866, Level 16, State 1, Line 1 
The bulk load failed. The column is too long in the data file for row 1, column 5. Verify that the field terminator and row terminator are specified correctly. 
Msg 7399, Level 16, State 1, Line 1 
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error. 
Msg 7330, Level 16, State 2, Line 1 
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)". 

Le fichier de données que je suis en train d'importer, can be located here.

Toute aide appréciée.

Update 1 Voici un exemple des données que je utilise:

0001 OSLO 0301 OSLO K 
0010 OSLO 0301 OSLO F 
0014 OSLO 0301 OSLO K 
0015 OSLO 0301 OSLO K 
0016 OSLO 0301 OSLO K 
0017 OSLO 0301 OSLO K 
0018 OSLO 0301 OSLO G 
0020 OSLO 0301 OSLO K 
0021 OSLO 0301 OSLO K 

Mise à jour 2

J'ai réussi à les importer maintenant. Tout ce que j'ai fait était de copier le texte dans un nouveau fichier, et enregistrez-le en tant que test.txt. Je n'ai aucune idée de pourquoi cela fonctionne. C'est peut-être à cause de l'encodage du fichier. Le fichier était codé en UTF8.

+0

Salut, je ne suis pas complètement sûr juste quelque chose à vérifier après le dernier champ est il \ t avant la \ n? – IordanTanev

+0

Il n'y a pas d'onglet après le dernier champ. Terminateur de ligne juste. – Steven

Répondre

2

Premièrement, les termineurs de ligne semblent être des terminaisons de ligne 0D 0A dans le fichier. (CR LF). Je crois que cela se traduit par \r\n. Cependant, le problème persiste.

Il semble y avoir un correctif à partir de MS http://support.microsoft.com/kb/935446

+0

J'ai essayé aussi, mais j'ai reçu le même message d'erreur. – Steven

+0

Voir le lien hotfix – pjp

+0

J'ai réussi à les importer maintenant. Tout ce que j'ai fait était de copier le texte dans un nouveau fichier, et enregistrez-le en tant que test.txt. Je n'ai aucune idée de pourquoi cela fonctionne. Peut-être à cause de l'encodage du fichier? Le fichier doit être codé en UTF8. – Steven