首页 > 解决方案 > Azure SQL Server BCP -

问题描述

我有一个包含 3 列的 csv 文件

LastName
FirstName
EmpID

我使用 SQLLDR 将数据加载到 Oracle 数据库中,但是在将数据库迁移到 Azure SQL Server 后,我选择使用 BCP 将数据加载到 Azure sqlserver。

我正在使用以下命令生成格式

bcp Database.Schema.Persons 格式 nul -c -t, -f Persons.fmt -S tcp:demo.database.windows.net -U User01 -PP@$$word!

它具有以下格式

13.0
3
1       SQLCHAR             0       255     ","      1     LastName               SQL_Latin1_General_CP1_CI_AS
2       SQLCHAR             0       255     ","   2     FirstName              SQL_Latin1_General_CP1_CI_AS
3       SQLINT             0       255     "\r\n"   3     FirstName              SQL_Latin1_General_CP1_CI_AS

但是 SQLLDR ctl 文件具有以下功能

LPAD(:EmpID, 4, '0')
DATE "YYYY-MM-DD"
TIMESTAMP "YYYY-MM-DD-HH24.MI.SS.FF6"
NVL(:LastName, '')

我如何适应 BCP 格式的文件?

标签: sql-serverazure-sql-databasebcpazure-sql-serverazure-sql

解决方案


我如何适应 BCP 格式的文件?

你没有。BCP 进入临时表并将 INSERT ... SELECT 插入最终表以应用转换。或者在 Azure Blob 存储中暂存数据并使用INSERT ... .SELECT 。. . FROM OPENROWSET将数据加载到目标表中。


推荐阅读