我想使用BCP实用程序将数据导入Azure SQL。数据文件尚未由BCP导出创建,但由我创建。
数据文件的一行如下所示:
61b7d233-b6ee-47df-862f-46adfc487eae;卡西霉素;;;;;;;;美式英语版本; 0; 1; 0; 0;网
如您所见,没有涉及DateTime,cause the problem已知。
BCP命令:
bcp dbo.Word in Word.txt -c -t; -S auu5nuc9tl.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
正确导入文件的所有其他行。该文件是由我编写的代码自动创建的,因此数据文件的第一行与其他文件没有区别。
造成这个问题的原因是什么?
有一个类似但未回答的问题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)
)
答案 0 :(得分:0)
按照@ckarst:在第一个字符之前有一个空格。 这会将我的行为从“工作”更改为“不工作”,并删除了空间以解决问题。
`开始复制... SQLState = 22005,NativeError = 0 错误= [Microsoft] [用于SQL Server的ODBC驱动程序13]转换说明的字符值无效
0行已复制。 网络数据包大小(字节):4096 时钟时间(毫秒)总计:1 `
答案 1 :(得分:-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