2012-12-21 26 views
21

'dan sonra hatalı görünen özel karakterler Bir CSV dosyasını içe aktarmak için BULK INSERT kullanıyorum. CSV dosyasındaki sütunlardan biri, kesirler içeren bazı değerler içerir (ör. 1m½f).BULGU INSERT

Değerler yalnızca görüntüleme amacıyla kullanacağından, kesirler üzerinde herhangi bir matematik işlemi yapmam gerekmediğinden, sütunu nvarchar olarak ayarladım. BULK INSERT çalışır ancak SQL içerisindeki kayıtları görüntülediğimde, kesir, yüzde sembolü (¢) ile değiştirildi, böylece görüntülenen metin 1m¢f olur.

Bunun neden olduğunu ve sorunun nasıl çözüleceğine dair herhangi bir düşünceyi anlamak istiyorum. BULK INSERT komut şudur: SQL Server kod sayfası, Windows kod sayfası dize veri dönüştürür CODEPAGE = 'ACP' kullanılarak BULK INSERT gerek

BULK INSERT dbo.temp FROM 'C:\Temp\file.csv' 
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n'); 
+0

Veriler tam anlamıyla yarım karakter içeriyor mu? – Melanie

+0

Evet, 1/2 karakterinin yerine ½ karakterini içerir. – MrMatt

+0

@AaronBertrand, toplu ekleme olup: 'DAN bulk INSERT dbo.temp code': (''= FIELDTERMINATOR, ROWTERMINATOR = '\ n') İLE 'Cı \ Temp \ file.csv'; \t Harmanlama Latin1_General_CI_AS. Dosyanın Unicode olarak işaretli olup olmadığını nasıl kontrol ederim? – MrMatt

cevap

39

.

BULK INSERT dbo.temp FROM 'C:\Temp\file.csv' 
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', CODEPAGE = 'ACP'); 
+0

Teşekkür ederim, bu işe yarar. – MrMatt

+0

Bu, ayrıca ns gibi aksanlı karakterler içeren ansii metnini doğru şekilde toplu olarak yerleştirmek için ihtiyacım olan şeydi. – monty