BCP意外的字符串数据,右截断

时间:2019-03-21 06:56:28

标签: text import character-encoding azure-sql-database bcp

尝试将数据导入Azure。创建了一个文本文件,并尝试使用逗号和制表符分隔的文本文件。

这是文本文件要插入的表:

CREATE TABLE [dbo].[Test] (
    [Id] [uniqueidentifier] NOT NULL,
    [first_name] [varchar] (50),
    [last_name] [varchar] (50),
    [dob] [varchar] (10),
    [gender] [char] (1),
    [phone] [char] (10))

BCP dbo.Test在C:\ Test.txt中-S“ DBServerName” -d“ DBName” -U“ UserName” -P“ Password” -c -r / r

曾尝试将文本文件保存为不同的格式和不同的编码,但是相信将它与UNIX LF一起使用为UTF-16是正确的。有什么想法吗?另外,如果数据中有空值(Id字段除外),是否需要在BCP语句中以某种方式指定该值?谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您可以参考以下文档:Import data into Azure SQL Database with BCP Utility。 本教程讨论的是将数据从CSV加载到Azure SQL数据库(平面文件)。

从文档中我们可以得到:

1。您的数据文件需要使用ASCII或UTF-16编码。

2。 BCP不支持UTF-8。

此外,您还可以引用Format Files for Importing or Exporting Data

我有一个文本数据文件,其中一列为空。

enter image description here

然后我将此文件导入到我的Azure SQL数据库dbleon1中,未指定其他任何内容,并成功完成了

我的bcp代码:

bcp tb1 in C:\Users\leony\Desktop\tb1.txt -S *****.database.windows.net -d dbleon1 -U ServerAdmin -P ***** -q -c -t

enter image description here

我检查了一下,并将数据导入了数据库tb2的{​​{1}}中。 enter image description here

希望这会有所帮助。