我有一个SQL水印表,其中包含目标表中的最后一个日期
我的源数据来自Azure存储表,日期时间是字符串
我在水印表中设置日期时间以匹配Azure表存储中的格式
我创建了一个查找和复制任务enter image description here
如果我将日期硬编码到查询源中并运行此工作正常CreatedAt ge'2019-03-06T14:03:11.000Z'
但显然我不想硬编码这个值。我想使用查找中的日期
但是当我用查找值替换硬编码日期时
CreatedAt ge'活动('LookupWatermarkOld')。输出'
我收到一个错误
{“errorCode”:“2200”,“message”:“ErrorCode = FailedStorageOperation,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =存储操作失败并显示以下错误'远程服务器返回错误:( 400)Bad Request。'。,Source =,''Type = Microsoft.WindowsAzure.Storage.StorageException,Message =远程服务器返回错误:(400)Bad Request。,Source = Microsoft.WindowsAzure.Storage,StorageExtendedMessage = Syntax 'CreatedAt ge'活动中第42位的错误('LookupWatermarkOld')。output''。\ nRequestId:8c65ced9-b002-0051-79d9-d41d49000000 \ n时间:2019-03-07T11:35:39.0640233Z ,,''类型= System.Net.WebException,Message =远程服务器返回错误:(400)Bad Request。,Source = Microsoft.WindowsAzure.Storage,'“,”failureType“:”UserError“,”target“:”CopyMentions“}
谁能帮我这个?如何在Azure表查询中使用Lookup值?
看一下这个:
1)查找活动。查询字段:
SELECT MAX(WatermarkColumnName)作为LastId FROM TableName;
此外,请确保选中“仅第一行”选项。
2)在复制数据活动中使用查询。查询字段:
@concat('SELECT * FROM TableName as s WHERE s.WatermarkColumnName>''',activity('LookupActivity')。output.firstRow.LastID,'''')
最后我得到了一些帮助,它可以使用
CreatedAt gt'@ {activity('LookupWatermarkOld')。output.firstRow.WaterMarkValue}'
WaterarkValue是SQL Lookup表中的列名
Lookup创建一个数组,因此您必须从此数组中指定FirstRow
并包装''所以它用作字符串值