azure - Azure 数据工厂在一列中映射 2 列
问题描述
有人可以帮我解决在连接两列时出现的错误,即first name
从last name
我的文本文件中,并将这两列合并到我的Azure SQL 数据库中的一个名称列中,就像sink
在Azure 数据工厂中一样,另一个问题是我想选择来自源文本文件的性别列的第一个字母,分别是M
男性和女性,并将其更改为 Azure 数据工厂管道中我的性别列中的一个字母 M 或 F 在此处输入图像描述?F
- 更新 1
我的表名是 [dbo].[Contact] 并且在应用此过程后出现此错误,并且我在文本文件中的列名之间有空格,例如名字和姓氏,这是否也会产生问题?
解决方案
基于文档:复制活动中的模式映射,模式映射支持合并列。
作为解决方法,我建议stored procedure
在您的sql server sink中配置 sql server 。它可以将正在复制的数据与现有数据合并。
请按照此文档中的步骤操作:
第 1 步:配置输出数据集:
第 2 步:在复制活动中配置 Sink 部分,如下所示:
第 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
输出截图:
希望它可以帮助你。
推荐阅读
- python - 在 python pandas 中将对象转换为日期时间戳。天没有前导零的地方
- javascript - 如何添加具有相同类的事件侦听器?
- python - 为什么 matplotlib 轮廓标签会使轮廓消失?
- flutter - Flutter 中的富文本组件
- javascript - ReferenceError:未定义客户端
- java - Java - 如何将多个文档(具有多种文件格式和文件转换)合并为一个 PDF?
- sql-server - 将 db_Execute 赋予现有角色
- reactjs - ReactJS 中的媒体查询
- django - 为什么我的模型中的 blank=True 没有传播到我的模型表单?
- ios - 如何以编程方式关闭上下文菜单(UIContextMenu)?