【发布时间】:2012-07-09 22:23:00
【问题描述】:
我正在将 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;
最后一个 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
我会在这里遗漏什么?
【问题讨论】:
-
讨厌问显而易见的问题 - 但您的文件中有任何内容吗?如果有,是否符合您的标准?
-
您需要提供至少 2 行无法加载的 CSV 文件。
-
文件有内容,我相信它符合条件。否则它不应该给我一条错误消息吗?
-
我现在已经从 CSV 添加了示例行。
-
鉴于您提供的代码和数据,这对我有用。您的源文件中可能有一些非打印字符,或不同的行终止符?
标签: sql sql-server sql-server-2008 csv bulkinsert