我将使用Azure数据工厂安排数据库插入。
我有1个copydata和2个查找1.在目标表中插入了最大ID(json代码中的LastValue)2.从源表中获得了最大id(最大)。
要获取“复制数据”中的查找值,我已经编写了如下所述的查询,但仍然出现错误,并且无法在选择查询中获取查找值。
从customer
中选择*,其中created_at> = curdate()-30和id> @ {activity('CDNOps_LastUpdateValue')。output.firstRow.LastValue}和id <= @ {activity('Source_MaxValue') .output.firstRow.Max limit 20000}
请帮助我。
我在调度数据时收到的错误消息是
“ errorCode”:“ 2200”, “消息”:“失败发生在'源'端。ErrorCode= UserErrorOdbcOperationFailed,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message = ERROR [42000] [Microsoft] [MariaDB]您的SQL语法错误;请查看与您的MariaDB服务器版本相对应的手册,以在第2行的'\“ LastValue \”:540418183} \ n和id <= {\“ Max \”:546239715}'附近使用正确的语法。 .....
答案 0 :(得分:0)
以下语法应该是正确的:
从客户中选择*,其中created_at> = curdate()-30和id> @ {activity('CDNOps_LastUpdateValue')。output.firstRow.LastValue}和id <= @ {activity('Source_MaxValue')。output.firstRow .max}上限20000
请注意,当您将查找活动输出包装到@ {}中时,这意味着您试图在运行时动态评估该值,因此请输入“ limit 20000”(不属于查找输出),进入@{}会导致错误。还要确保@ {activity('CDNOps_LastUpdateValue')。output.firstRow.LastValue}和@ {activity('Source_MaxValue')。output.firstRow.Max}的值应与表中列ID的值相当(相同至少输入)。关于调试的一些小技巧,您可以在UI上的复制活动中创建一个用户属性,以主动检查评估后的查询结果是否是您想要的,请参见下图: