我打算使用BCP实用程序将数据导入到Azure SQL。数据文件不是由BCP导出创建的,而是由我创建的。

数据文件的一行如下所示:


61b7d233-b6ee-47df-862f-46adfc487eae; Calcimycin ;;;;;; enUS; 0; 1; 0; 0; MeSH


如您所见,不涉及cause the problem已知的DateTime。

BCP命令:


bcp dbo.Word.txt中的单词-c -t; -S auu5nuabcl.database.windows.net -d
dbname -U用户名-P传递-e error.txt


导入的工作方式与不导入数据文件中的第一行不同。错误文件显示:

#@ Row 1, Column 1: Invalid character value for cast specification @# 61b7d233-b6ee-47df-862f-46adfc487eae  Calcimycin                              enUS    0   1   0   0   MeSH


文件的所有其他行均已正确导入。该文件是由我编写的代码自动创建的,因此数据文件的第一行与其他行没有区别。

造成此问题的原因可能是什么?

有一个类似的但未回答的问题here

附加信息:

这是SQL中的表:

CREATE TABLE skicocat.dbo.Word (
  Id uniqueidentifier NOT NULL,
  NominativeSingular nvarchar(max) NOT NULL DEFAULT (''),
  NominativePlural nvarchar(max) NOT NULL DEFAULT (''),
  GenitiveSingular nvarchar(max) NOT NULL DEFAULT (''),
  GenitivePlural nvarchar(max) NOT NULL DEFAULT (''),
  DativeSingular nvarchar(max) NOT NULL DEFAULT (''),
  DativePlural nvarchar(max) NOT NULL DEFAULT (''),
  AccusativeSingular nvarchar(max) NOT NULL DEFAULT (''),
  AccusativePlural nvarchar(max) NOT NULL DEFAULT (''),
  Culture nvarchar(50) NOT NULL DEFAULT ('en-US'),
  IsCaseSensitive bit NOT NULL DEFAULT (0),
  IsDisplayName bit NOT NULL DEFAULT (0),
  IsAmbient bit NOT NULL DEFAULT (0),
  Hits bigint NOT NULL DEFAULT (0),
  Comment nvarchar(max) NULL DEFAULT (''),
  CONSTRAINT PK_Word PRIMARY KEY CLUSTERED (Id)
)

最佳答案

根据@ckarst:在第一个字符之前有一个空格。
这将我的行为从工作更改为不工作,并删除了空间以解决问题。

`开始复制...
SQLState = 22005,NativeError = 0
错误= [Microsoft] [用于SQL Server的ODBC驱动程序13]转换说明的字符值无效

已复制0行。
网络数据包大小(字节):4096
时钟时间(毫秒)总计:1
`

关于sql - BCP批量导入在第一行上抛出“用于转换规范的无效字符值”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35699472/

10-10 18:06