能否在ADF中从源路径自动生成SQL目标表名?
在ADF中用ODATA源路径自动生成SQL表名的实现方法
完全可行,具体实现步骤如下:
提取ODATA源路径中的表名字段
不管你的ODATA源路径是固定的还是通过参数/变量动态配置的,都可以用ADF的表达式语言提取路径的最后一段作为表名。比如源路径是/odata/v1/CustomerOrders,用以下表达式就能拿到CustomerOrders:@split(dataset().path, '/')[sub(length(split(dataset().path, '/')), 1)]如果路径里有SQL表名不支持的字符(比如
-、.),可以用replace()函数处理,比如把横杠换成下划线:@replace(split(dataset().path, '/')[sub(length(split(dataset().path, '/')), 1)], '-', '_')配置复制活动的动态表名与自动建表
在复制活动的SQL目标设置里,先开启「自动建表」选项,然后把目标表名的输入框换成上面的表达式(或者先把表达式存到管道变量里再引用),不要写固定的表名。这样ADF在执行复制时,会自动用你提取的路径名称创建对应的SQL表,同时完成数据写入。验证表达式与执行结果
在ADF的表达式编辑器里可以先测试你的表名表达式,确认输出符合预期。运行管道后,去SQL数据库里检查是否生成了对应名称的表,以及数据是否正确复制。
内容的提问来源于stack exchange,提问作者Kresten
相关产品推荐
相关产品推荐

