Синтаксическая ошибка в запросе SOQL фабрики данных Azure WHERE LastModifiedDate ›= datetime

Я работаю в фабрике данных Azure V2, пытаюсь запросить у объекта Salesforce, где LastModifiedDate в объекте больше или равен недавней дате. Я получаю синтаксические ошибки в чрезвычайно простых запросах SOQL, которые отлично работают в Salesforce Workbench. Ниже я перечислил примеры запросов, которые я выполнял в действии ADF Copy Data, а также ошибки, которые я получил при отладке конвейера.

Запрос 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"
}

Что могло вызвать эту синтаксическую ошибку?


person futurenow    schedule 15.08.2018    source источник
comment
Я мало что знаю об Azure, извините ... Что за кавычки вокруг "Object"? SF напрямую использует имена таблиц. Вы пробовали с простым SELECT Id, Name FROM Account LIMIT 5? Вы уверены, что ошибка заключается в форматировании даты?   -  person eyescream    schedule 16.08.2018


Ответы (1)


Удаление кавычек вокруг объекта, похоже, решает вашу проблему.

ВЫБЕРИТЕ ИД ИЗ ОБЪЕКТА ГДЕ LastModifiedDate> = 2018-08-14T00: 00: 00Z.

Я проверил запрос с кавычками в консоли разработчика Salesforce и получил «Запрос синтаксического анализа с неизвестной ошибкой», поэтому я считаю, что это недопустимый запрос SOQL с кавычками.

person David    schedule 16.08.2018
comment
Я мог бы поклясться, что пытался опустить кавычки и получал ошибку несколько раз, поэтому я исключил это. Но я снова попытался отладить, и это исправило. Я такой дурак. Спасибо!!! - person futurenow; 16.08.2018