Azure数据工厂错误:"附近的语法不正确 [英] Azure Data Factory Error: "incorrect syntax near"

查看:15
本文介绍了Azure数据工厂错误:"附近的语法不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试执行一次简单的增量更新,从作为源的本地数据库到Azure SQL数据库,该更新基于本地数据库中名为&rp";的varchar列,该列包含";Date+StaticDescription&Quot;例如:";20210314MetroFactory";

1-我使用在Azure SQL数据库中创建的表创建了一个名为Lookup1的查找活动,并使用此查询

从Subsetwater markTable中选择RP

2-我已创建源设置具有此查询的复制数据活动

从源设备子表中选择*其中RP不在‘@{activity(’Lookup1‘).output.value}’";

中(&Q)

调试时--我收到错误:

故障类型:用户配置问题

详细信息:‘源’端发生故障。 ‘Type=System.Data.SqlClient.SqlException,Message=附近有错误的语法 ‘[{&Q;RP&Q;:&Q;20210307_1工厂 1Kao&Quot;},{";RP";:";20210314MetroFactory";},{";RP";:";20210312MetroFactory";},{";RP";:";20210312MetroFactory";},{&Quot;RP&Quot;:&Quot;2‘.,来源=.Net Sql客户端数据 提供程序,序列错误编号=102,类别=15,错误代码=-2146232060,状态=1,错误=[{类别=15,编号=102,状态=1,消息=不正确 语法NEAR ‘[{";RP";:";20210311MetroFactory";},{";RP";:";20210311MetroFactory";},{";RP";:";202103140MetroFactory";},{";RP";:";20210308MetroFactory";},{&Q;RP&Q;:&Q;2’,},],‘

谁能告诉我我做错了什么,以及如何修复它,即使它需要创建更多活动。

注意:表中没有LastModifiedDate列。此外,我还没有创建将在完成增量复制时更新查找表的StoredProcedure。

推荐答案

Steve关于失败的原因和您在复制数据中需要的查询是正确的。

正如他所说,您希望在IN子句中使用逗号分隔的引号值列表。

不过,您可以更轻松地从您的查找中直接使用以下查询:-

select stuff(
  (
    select ','''+rp+''''
    from   subsetwatermarktable
    for    xml path('')
  )
  , 1, 1, ''
) as in_clause

子查询获取逗号分隔的列表,每个rp值用引号括起来,但开头有一个虚假的逗号-外部查询stuff删除了这一点。

现在勾选Lookup上的First Row Only(仅第一行)框并将复制数据源查询更改为:

select *
from   SourceDevSubsetTable
where  rp not in (@{activity('lookup').output.firstRow.in_clause})

这篇关于Azure数据工厂错误:"附近的语法不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆