9

「実際の」テーブルとマージする前に、CSV ファイルから一時テーブルにデータをインポートしています。

私の他のテーブルでは、これでうまくいきます。しかし、この 1 つの特定のファイルとテーブルについては、何も起こらないようです。

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;

最後の select ステートメントは何も返さず、エラーも表示されません。

CSV ファイルには数千行が含まれています。例の行:

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

ここで何が欠けているのでしょうか?

4

1 に答える 1

23

エドハーパーは私を正しい方向に導きました:行ターミネーターは間違っていました。

だから私がそれを変更したとき

ROWTERMINATOR = '0x0a' 

BULK INSERT('\ n'の代わりに)で動作を開始しました。

于 2012-07-11T10:21:47.760 に答える