2012-07-10 11 views
6

मैं CSV फ़ाइलों से डेटा को "असली" तालिका में विलय करने से पहले टेम्पलेट टेबल में आयात कर रहा हूं।थोक सम्मिलन कोई पंक्ति नहीं डालता

मेरी अन्य तालिकाओं के लिए, यह ठीक काम करता है। लेकिन इस एक विशेष फ़ाइल और टेबल के लिए, ऐसा कुछ नहीं होता है।

CREATE TABLE #ManifestHeader ( 
[ROTATIONNUMBER] [nvarchar](12) NOT NULL, 
[ROTATIONVERSIONNO] [nvarchar](2) NOT NULL, 
[IMONUM] [nvarchar](50) NULL, 
[VESSELNAME] [nvarchar](35) NOT NULL, 
[VOYAGENO] [nvarchar](17) NOT NULL, 
[CARRIERCODE] [nvarchar](10) NULL, 
[CARRIERNAME] [nvarchar](35) NULL, 
[ETA] [datetime] NULL, 
[ETD] [datetime] NULL, 
[ACTUALARRIVALDATE] [datetime] NULL, 
[LASTPORTOFCALL] [nvarchar](5) NULL, 
[PORTARRIVAL] [nvarchar](5) NULL, 
[PORTNEXT] [nvarchar](5) NULL, 
[PORTFINAL] [nvarchar](5) NULL,  
[BERTHINGDATE] [datetime] NULL, 
[CDRSTARTDATE] [datetime] NULL, 
[CDRENDDATE] [datetime] NULL, 
[CDRSUBMISSIONDATE] [datetime] NULL, 
[NUMOFBOLS] [int] NULL, 
) 

BULK INSERT #ManifestHeader 
FROM 'D:\csvfiles\ManifestHeader.csv' 
WITH (FIELDTERMINATOR = '<,>', ROWTERMINATOR = '\n', FIRSTROW = 2, KEEPIDENTITY); 

SELECT * FROM #ManifestHeader; 

अंतिम चयन कथन कुछ भी नहीं देता है और कोई त्रुटि दिखाई नहीं देती है।

सीएसवी फ़ाइल में हजारों लाइनें हैं। उदाहरण पंक्तियां:

ROTATIONNUMBER<,>ROTATIONVERSIONNO<,>IMONUM<,>VESSELNAME<,>VOYAGENO<,>CARRIERCODE<,>CARRIERNAME<,>ETA<,>ETD<,>ACTUALARRIVALDATE<,>LASTPORTOFCALL<,>PORTARRIVAL<,>PORTNEXT<,>PORTFINAL<,>BERTHINGDATE<,>CDRSTARTDATE<,>CDRENDDATE<,>CDRSUBMISSIONDATE<,>NUMOFBOLS 
12345678911<,>1<,>VB3BV<,>BLACKSTONE<,>020<,>MUNICA<,>MUNICA<,>2012-05-08 10:32:00<,>2012-05-08 11:32:00<,>2012-05-09 07:15:00<,>SGSIN<,>MZZPZ<,>MZZBW<,>MZZBW<,><,>2012-05-09 07:22:00<,><,>2012-05-09 07:22:26<,>1 
12345678912<,>1<,>VB4BV<,>REDSTONE<,>021<,>MUNICA<,>MUNICA<,>2011-11-29 11:48:00<,>2011-11-30 11:48:00<,><,>ZADER<,>MZZPZ<,>ZARCB<,>MZZPZ<,><,><,><,><,> 
12345678913<,>1<,>VB5BV<,>BLUESTONE<,>022<,>MUNICA<,>MUNICA<,>2012-05-09 08:00:00<,>2012-05-10 10:39:00<,>2012-05-09 11:11:00<,>ZADER<,>MZZPZ<,>ZARCB<,>ITCVV<,><,>2012-05-09 15:00:00<,><,>2012-05-07 11:14:42<,>1 
12345678914<,>1<,>VB6BV<,>GREENSTONE<,>023<,>MUNICA<,>MUNICA<,>2012-05-29 07:00:00<,>2012-05-29 23:00:00<,>2012-05-29 09:12:00<,>LKCMB<,>MZMNC<,>MZMNC<,>SGSIN<,><,>2012-05-29 23:00:00<,>2012-05-30 12:00:00<,>2012-05-29 09:30:33<,>1 

मैं यहां क्या खो सकता हूं?

+0

स्पष्ट पूछने के लिए नफरत है - लेकिन क्या आपकी फ़ाइल में कुछ भी है और यदि ऐसा कुछ भी आपके मानदंड से मेल खाता है? – DaveRlz

+1

आपको अपने सीएसवी की कम से कम 2 लाइनें देने की आवश्यकता होगी जो लोड होने में विफल रहता है। –

+0

फ़ाइल में सामग्री है, और मेरा मानना ​​है कि यह मानदंडों से मेल खाता है। क्या यह मुझे अन्यथा एक त्रुटि संदेश नहीं देना चाहिए? –

उत्तर

14

एड हार्पर ने मुझे सही दिशा में ले जाया: पंक्ति टर्मिनेटर गलत था।

तो जब मैं बल्क सम्मिलित में

ROWTERMINATOR = '0x0a' 

में बदल (के बजाय '\ N') यह काम करना शुरू किया।

+0

मेरे सर्वर हाल ही में SQL Server 2005 से 2012 तक माइग्रेट किए गए थे। लेकिन आज भी यह \ n और आज के साथ काम करता है यह केवल 0x0a के साथ काम करता है। वास्तव में क्या हो रहा है, वास्तव में? –

संबंधित मुद्दे