Azure Data Factory的SalesForce连接器是否支持SOQL的TypeOf关键字
Azure Data Factory Salesforce连接器SOQL TYPEOF关键字支持说明
当前Azure Data Factory(ADF)官方提供的Salesforce连接器不支持SOQL的TYPEOF关键字语法。
报错原因
你遇到的语法报错是ADF侧的前置SOQL语法校验拦截导致的:ADF内置的Salesforce查询解析器基于旧版SOQL规范开发,未同步适配TYPEOF这类条件分支表达式语法,即使你的语句完全符合Salesforce官方SOQL规范、直接调用原生API可以正常执行,也会被ADF的校验逻辑判定为语法错误。
可用替代方案
你可以根据业务场景选择以下任意方案绕过该限制:
- 拆分查询逻辑:将
TYPEOF的分支判断拆为2次独立查询,后续在ADF数据流中合并结果,示例语句如下:-- 查询ParentRecord为WorkOrder的记录 SELECT Id, ParentId, Case.CaseNumber FROM ServiceAppointment WHERE ParentRecord.Type = 'WorkOrder'-- 查询其他类型的记录 SELECT Id, ParentId, Name FROM ServiceAppointment WHERE ParentRecord.Type != 'WorkOrder' - 预计算字段:在Salesforce侧提前创建自定义公式字段,把
TYPEOF的判断逻辑内置到该字段的计算规则中,ADF直接查询该预计算的字段即可,无需在SOQL中写TYPEOF表达式。 - 直接调用Salesforce API:不使用ADF内置的Salesforce连接器,改用ADF的HTTP连接器直接调用Salesforce的
queryAllREST API,和你在Postman中的调用逻辑完全一致,直接传入带TYPEOF的SOQL语句即可,不会触发ADF的SOQL语法校验。
内容的提问来源于stack exchange,提问作者Richard Morgan
相关产品推荐
相关产品推荐

