【问题标题】:Syntax Error in Azure Data Factory SOQL Query WHERE LastModifiedDate >= datetimeAzure 数据工厂 SOQL 查询 WHERE LastModifiedDate >= datetime 中的语法错误
【发布时间】:2018-08-15 20:25:31
【问题描述】:

我在 Azure 数据工厂 V2 中工作,尝试从对象中的 LastModifiedDate 大于或等于最近日期的 Salesforce 对象进行查询。我一直收到关于极其简单的 SOQL 查询的语法错误,这些查询在 Salesforce Workbench 中运行良好。下面,我列出了我在 ADF 复制数据活动中运行的查询示例,以及调试管道时收到的错误。

查询 1

 Select Id from "Object" WHERE LastModifiedDate >=
 @{formatDateTime(activity('Yesterday').output.firstRow.Yesterday,'yyyy-MM-ddTHH:mm:ssZ')}

结果 1

{
    "errorCode": "2200",
    "message": "Failure happened on 'Source' side. ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=ERROR [HY000] [Microsoft][Salesforce] (120) SOQL_FIRST mode prepare failure:\nSOQL error: [Microsoft][Salesforce] (30) Syntax error or access violation when parsing SOQL.\nSQL error: [Microsoft][SQLEngine] (31480) syntax error near 'Select Id from \"Object\" WHERE LastModifiedDate >= 2018-08-13T16<<< ??? >>>:05:06Z'.,Source=Microsoft.DataTransfer.ClientLibrary.Odbc.OdbcConnector,''Type=System.Data.Odbc.OdbcException,Message=ERROR [HY000] [Microsoft][Salesforce] (120) SOQL_FIRST mode prepare failure:\nSOQL error: [Microsoft][Salesforce] (30) Syntax error or access violation when parsing SOQL.\nSQL error: [Microsoft][SQLEngine] (31480) syntax error near 'Select Id from \"Object\" WHERE LastModifiedDate >= 2018-08-13T16<<< ??? >>>:05:06Z'.,Source=Microsoft Salesforce ODBC Driver,'",
    "failureType": "UserError",
    "target": "Event Fix Pipeline"
}

查询 2

SELECT Id FROM "Object" WHERE LastModifiedDate >= 2018-08-14T00:00:00Z

结果 2

{
    "errorCode": "2200",
    "message": "Failure happened on 'Source' side. ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=ERROR [HY000] [Microsoft][Salesforce] (120) SOQL_FIRST mode prepare failure:\nSOQL error: [Microsoft][Salesforce] (30) Syntax error or access violation when parsing SOQL.\nSQL error: [Microsoft][SQLEngine] (31480) syntax error near 'SELECT Id FROM \"Object\" WHERE LastModifiedDate >= 2018-08-14T00<<< ??? >>>:00:00Z'.,Source=Microsoft.DataTransfer.ClientLibrary.Odbc.OdbcConnector,''Type=System.Data.Odbc.OdbcException,Message=ERROR [HY000] [Microsoft][Salesforce] (120) SOQL_FIRST mode prepare failure:\nSOQL error: [Microsoft][Salesforce] (30) Syntax error or access violation when parsing SOQL.\nSQL error: [Microsoft][SQLEngine] (31480) syntax error near 'SELECT Id FROM \"Object\" WHERE LastModifiedDate >= 2018-08-14T00<<< ??? >>>:00:00Z'.,Source=Microsoft Salesforce ODBC Driver,'",
    "failureType": "UserError",
    "target": "Event Fix Pipeline"
}

什么可能导致此语法错误?

【问题讨论】:

  • 我对 Azure 了解不多,抱歉..."Object" 周围的引号是什么意思? SF 直接使用表名。你试过简单的SELECT Id, Name FROM Account LIMIT 5吗?您确定日期格式有错误吗?

标签: salesforce azure-data-factory soql azure-data-factory-2


【解决方案1】:

删除 Object 周围的引号似乎可以解决您的问题。

从对象中选择 ID,其中 LastModifiedDate >= 2018-08-14T00:00:00Z。

我在 Salesforce Developer Console 中测试了带引号的查询,得到“未知错误解析查询”,所以我认为这是一个带引号的无效 SOQL 查询。

【讨论】:

  • 我本可以发誓我曾尝试省略引号并多次收到错误,因此我已将其排除在外。但是我再次尝试调试,并且修复了它。我真是个傻瓜。谢谢!!!
【解决方案2】:

大声笑,在我的例子中,它是 SOQL 语句末尾的分号。

【讨论】:

    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多