对BCP和格式文件错误进行故障排除

时间:2018-06-29 14:57:20

标签: sql format bcp sqlbulkcopy

首先,对于冗长的帖子,我们深表歉意。我想对示例/数据进行详尽的介绍,而这篇文章的大部分内容就是如此。

我在新工作中使用格式文件(.fmt)继承了批量导入过程。这个过程是由在我之前工作过的那个人创建的,学习这个过程(并立即修复)是我的工作。我对这些东西的知识有限,但是我已经做了一些研究。几个星期后,我真的什么都没得到。这是我正在使用的东西...

-BCP命令将数据从C:\ Desktop \ 20180629_2377167_PR_NP.txt导入表LA_Temp.dbo.ProvReg

bcp LA_Temp.dbo.ProvReg IN C:\ Desktop \ 20180629_2377167_PR_NP.txt -f C:\ Desktop \ PROVREG.FMT -T -S SERVERNAME -k -m 1000000

-表结构,从该表创建格式文件:

SELECT [NPI]
  ,[D1]
  ,[EntityType]
  ,[D2]
  ,[ReplaceNPI]
  ,[D3]
  ,[ProvName]
  ,[D4]
  ,[MailAddr1]
  ,[D5]
  ,[MailAddr2]
  ,[D6]
  ,[MailCity]
  ,[D7]
  ,[MailState]
  ,[D8]
  ,[MailZip]
  ,[D9]
  ,[MailCountry]
  ,[D10]
  ,[MailPhone]
  ,[D11]
  ,[MailFax]
  ,[D12]
  ,[LocAddr1]
  ,[D13]
  ,[LocAddr2]
  ,[D14]
  ,[LocCity]
  ,[D15]
  ,[LocState]
  ,[D16]
  ,[LocZip]
  ,[D17]
  ,[LocCountry]
  ,[D18]
  ,[LocPhone]
  ,[D19]
  ,[LocFax]
  ,[D20]
  ,[Taxonomy1]
  ,[D21]
  ,[Taxonomy2]
  ,[D22]
  ,[Taxonomy3]
  ,[D23]
  ,[OtherProvID]
  ,[D24]
  ,[OtherProvIDType]
  ,[D25]
  ,[ProvEnumDate]
  ,[D26]
  ,[LastUpdate]
  ,[D27]
  ,[DeactivateRC]
  ,[D28]
  ,[DeactivateDate]
  ,[D29]
  ,[ReactivateDate]
  ,[D30]
  ,[Gender]
  ,[D31]
  ,[License]
  ,[D32]
  ,[LicenseState]
  ,[D33]
  ,[AuthorizedContact]
  ,[D34]
  ,[ContactTitle]
  ,[D35]
  ,[ContactPhone]
  ,[D36]
  ,[PanelOpen]
  ,[D37]
  ,[Language1]
  ,[D38]
  ,[Language2]
  ,[D39]
  ,[Language3]
  ,[D40]
  ,[Language4]
  ,[D41]
  ,[Language5]
  ,[D42]
  ,[AgeRestrict]
  ,[D43]
  ,[PCPMax]
  ,[D44]
  ,[PCPActual]
  ,[D45]
  ,[PCPAll]
  ,[D46]
  ,[EnrollInd]
  ,[D47]
  ,[EnrollDate]
  ,[D48]
  ,[FamilyOnly]
  ,[D49]
  ,[SubSpec1]
  ,[D50]
  ,[SubSpec2]
  ,[D51]
  ,[SubSpec3]
  ,[D52]
  ,[ContractName]
  ,[D53]
  ,[ContractBegin]
  ,[D54]
  ,[ContractEnd]
  ,[D55]
  ,[Parish1]
  ,[D56]
  ,[Parish2]
  ,[D57]
  ,[Parish3]
  ,[D58]
  ,[Parish4]
  ,[D59]
  ,[Parish5]
  ,[D60]
  ,[Parish6]
  ,[D61]
  ,[Parish7]
  ,[D62]
  ,[Parish8]
  ,[D63]
  ,[Parish9]
  ,[D64]
  ,[Parish10]
  ,[D65]
  ,[Parish11]
  ,[D66]
  ,[Parish12]
  ,[D67]
  ,[Parish13]
  ,[D68]
  ,[Parish14]
  ,[D69]
  ,[Parish15]
  ,[D70]
  ,[PCPInd]
  ,[D71]
  ,[DisplayOnline]
  ,[D72]
  ,[ExpAgeRestrict]
  ,[D73]
  ,[Suffix]
  ,[D74]
  ,[Title]
  ,[D75]
  ,[PrescriberInd]
  ,[Spaces]
  ,[End]

从[LA_Temp]。[dbo]。[ProvReg]

-示例文本文件数据(这是一行) 9999999999 ^ 0 ^ ^ ^ 3800 HMA BLVD STE 305 ^ ^ METAIRIE ^ LA ^ 70006 ^ ^^ 5048729679 ^ ^ 3800 HMA BLVD ^ ^ METAIRIE ^ LA ^ 70006 ^ ^ 9999999999 ^ ^ 207Q00000X ^ ^ ^ 0000000 ^ 2001 ^ ^ 00000000 ^ ^ 00000000 ^ 00000000 ^ F ^ ^ LA ^ ^ ^ ^ N ^ 1 ^ 0 ^ 0 ^ 0 ^ 0 ^ 2 ^ 00000 ^ 00000 ^ 00000 ^ ^ ^ ^ ^ ^ 000000000000000000000000000000000000 ^ 00000000 ^ 00000000 ^ 26 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 00 ^ 0 ^ 0 ^接受年龄为000-000 ^ ^ MD ^ ^的患者

-格式化文件

11.0

153

1 SQLCHAR 0 40“ \ t” 1 NPI SQL_Latin1_General_Pref_CP1_CI_AS

2 SQLCHAR 0 2“ \ t” 2 D1 SQL_Latin1_General_Pref_CP1_CI_AS

3 SQLCHAR 0 2“ \ t” 3 EntityType

...一直到...

153 SQLCHAR 0 2“ \ r \ n” 153结束

为了维护安全性,我已经更改了目录,服务器名和一些文本文件数据,但是,这非常相似。

这是我遇到的问题: 在刚从SQL表创建的格式文件中使用“ \ t”时,出现错误:[Microsoft] [SQL Server Native Client 11.0] BCP数据文件中遇到意外的EOF。

如果我将其更改为“”或“ ^”(我认为应该是因为文本文件使用胡萝卜定界符),则行开始复制并出现错误 [Microsoft] [SQL Server Native Client 11.0]字符串数据,右截断SQLState = 22001,NativeError =0。BCP复制失败。

如果任何人都可以在此处为我指明正确的方向以解决此问题,或者如果发现有任何异常,请通知我。正如我提到的,我已经来过一段时间了,可以使用我得到的任何建议。不幸的是,我公司没有人可以问这个问题。

0 个答案:

没有答案