繁体   English   中英

Azure逻辑应用程序SQL连接器

[英]Azure Logic App Sql Connector

我正在使用从SQL Server Db中提取CDC数据的Logic App。 我正在使用“获取行”操作,但是当我尝试使用“ 过滤查询”参数时出现了问题。

  • code eq '793' (有效)
  • __$operation eq '2' (无效)
  • @{string('__$operation')} eq '2' (无效)

我认为问题可能出在“ $”字符上。

错误信息

{  
  "status": 400,  
  "message": "Syntax error at position 12 in '__$operation eq '2'' "  
}

有人可以帮帮我吗!

我正在使用“获取行”操作,但是当我尝试使用“过滤查询”参数时出现了问题。

我认为问题可能出在“ $”字符上。

根据我的测试,如果字段/列包含$ (或__ ),并在Filter Query中使用该字段,则效果很好。

在此处输入图片说明

但是,如果我将该字段定义为__$operation与开始__$ ,这将导致同样的问题,当我在筛选查询中使用它。 因此,如果可能,您可以尝试修改SQL数据库中的列名称。

根据OData Normative$是保留字符,您应该在URI形成之前对其进行百分比编码。 不幸的是,我尝试了百分比编码,但仍然出现语法错误,似乎在“过滤查询”中是不允许的。 在此处输入图片说明


这是解决方案,在Logic App中,您不能在Filter Query中使用% ,因此不能在$使用%24 ,而应使用_x0024_ 。我现在可以成功获取结果:

在此处输入图片说明

请注意,开头有三个_ 如果字段/列名称中还有其他特殊字符,则可以使用此模式。 例如,如果字段名称是“ Display NameDisplay Name ,且中间使用空格字符,则在“ Filter Query”(过滤查询)中,您需要将其转换为Display_0x0020_Name

有关此编码的更多详细信息,请参阅对XML元素和属性名称以及ID值进行编码和解码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM