Sql BCP批量导入抛出';转换规范的字符值无效';在第一线

Sql BCP批量导入抛出';转换规范的字符值无效';在第一线,sql,import,azure-sql-database,bcp,Sql,Import,Azure Sql Database,Bcp,我正在使用BCP实用程序将数据导入Azure SQL。数据文件不是由BCP导出创建的,而是由我创建的 数据文件的一行如下所示: 61b7d233-b6ee-47df-862f-46adfc487eae;钙霉素;;;;;;;;埃努斯;0;1.0;0;网孔 如您所见,没有DateTime的参与,这是众所周知的 BCP命令: Word.txt-c-t中的bcp dbo.Word-S auu5nuabcl.database.windows.net-d dbname-U username-P pass-e

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

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

61b7d233-b6ee-47df-862f-46adfc487eae;钙霉素;;;;;;;;埃努斯;0;1.0;0;网孔

如您所见,没有DateTime的参与,这是众所周知的

BCP命令:

Word.txt-c-t中的bcp dbo.Word-S auu5nuabcl.database.windows.net-d dbname-U username-P pass-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
文件的所有其他行都已正确导入。该文件是由我编写的代码自动创建的,因此数据文件的第一行和其他行没有区别

这个问题的原因可能是什么

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

附加信息:

这是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
`

在数据库之间移动数据的最佳文件格式是本机文件(
-n
)。因此,请使用
-n
开关而不是字符文件(
-c
)。该文件人眼无法读取,但此类问题较少

bcp dbo.Word out Word.bcp -S someOtherServer -d dbname -U username -P pass -e error.txt -n

bcp dbo.Word in Word.bcp -S auu5nuabcl.database.windows.net -d dbname -U username -P pass -e error.txt -n

是否有包含/排除标题行的选项?它可能试图读取第一行作为标题行。好主意。。。有这样一个选项,但默认值是1,这意味着文件中的第一行。添加一个标题行,看看它说什么您需要编辑您的问题并显示(1)表格布局和(2)一些示例记录。@GordonLinoff我添加了创建表格信息。问题中发布了一个示例记录(第一个黄色引号)。这假定它是一个数据库到数据库的传输。BCP通常用于注入来自其他系统的数据内容(或只是手工构建的excel、txt文件等)。