首页 > 解决方案 > 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))

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

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

标签: textimportcharacter-encodingazure-sql-databasebcp

解决方案


我想你可以参考这个文档: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

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

在此处输入图像描述

然后我将此文件导入我的 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

在此处输入图像描述

我检查并将数据导入到tb2数据库中dbleon1在此处输入图像描述

希望这可以帮助。


推荐阅读