有人可以帮助我解决该错误吗?是合并文本文件中的两列,即first name
和last name
并将这两列合并到我的 Azure SQL数据库中的一个名称列中作为 Azure Data Factory 中的sink
,另一个问题是我想选择列性别为M
或{{1}的列的首字母}分别从源文本文件中获取 male 和female并将其更改为Azure数据工厂管道enter image description here中“我的性别”列中的一个字母M或F?
我的表名是[dbo]。[联系人]在应用此过程后出现此错误,并且文本文件中我的列名之间存在空格,例如名字和姓氏,这确实造成了问题也是吗?
答案 0 :(得分:0)
基于doc:复制活动中的架构映射,架构映射支持合并列。
作为解决方法,我建议在sql server sink中配置sql服务器stored procedure
。它可以将要复制的数据与现有数据合并。
请按照此doc中的步骤操作:
第1步:配置输出数据集:
步骤2:在复制活动中配置接收器部分,如下所示:
第3步:在数据库中,定义与sqlWriterTableType相同名称的表类型。请注意,表类型的架构应与输入数据返回的架构相同。
CREATE TYPE [dbo].[MarketingType] AS TABLE(
[FirstName] [varchar](256) NOT NULL,
[LastName] [varchar](256) NOT NULL,
[Gender] [varchar](256) NOT NULL
)
步骤4:在数据库中,定义与SqlWriterStoredProcedureName相同名称的存储过程。它处理来自指定源的输入数据,并合并到输出表中。请注意,存储过程的参数名称应与数据集中定义的“ tableName”相同。
Create PROCEDURE spOverwriteMarketing @Marketing [dbo].[MarketingType] READONLY
AS
BEGIN
MERGE [dbo].[jay] AS target
USING @Marketing AS source
ON (1=1)
WHEN NOT MATCHED THEN
INSERT (name, gender)
VALUES (source.FirstName + ' ' + source.LastName, UPPER(left(source.Gender,1)));
END
输出屏幕截图:
希望它对您有帮助。