1

V2 复制活动中是否有一种方法可以使用表达式对输入列(字符串类型)之一进行操作?在将行加载到目标之前,我需要限制列中的字符数。

我的希望是简单地从这样的东西切换:

"ColumnMappings": "inColumn: outColumn"

像这样:

"ColumnMappings": "@substring(inColumn, 1, 300): outColumn"

如果有人可以指出我可以在哪里阅读可以使用字符串表达式的位置和时间,我可以使用该指南。

4

2 回答 2

5

这是关于表达式和函数的官方文档:https ://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions

这是关于映射的文档:https ://docs.microsoft.com/en-us/azure/data-factory/copy-activity-schema-and-type-mapping

另请记住,如果您在复制活动中使用已定义的查询,则可以使用诸如 CAST([fieldName] as varchar(300)) 之类的 sql 函数来限制特定字段上的字符数。

希望这有帮助!

于 2018-02-06T14:33:56.657 回答
2

如果您没有 SQL 源,但目标是 SQL 接收器,则可以使用存储过程将数据插入到最终表中。这样,您可以在存储过程中定义这些类型的转换。我不认为数据工厂可以处理这些类型的活动,它更像是一个编排器。

看看这里: https ://docs.microsoft.com/en-us/azure/data-factory/connector-sql-server#invoke-stored-procedure-from-sql-sink

于 2018-02-08T15:53:49.990 回答