Getting the following error after executing: SELECT * FROM [<linked_server_name>_Fields]:
“EXCEEDED_ID_LIMIT: EntityDefinition does not support queryMore(), use LIMIT to restrict the results to a single batch”
This error means exactly what it states. An API request to the EntityDefinition table is made. When getting results from the table, the query() method is executed from the API. It has a limit on how many records the result query object can contain. If the limit is exceeded, the queryMore() method is called by the API to get the next batch of data. But this specific Salesforce Object (EntityDefinition) does not support the queryMore() method, which then results in the above error returned from the Salesforce API.
In pre-V22 versions of DBAmp, one way to get around this restriction would be if the _FieldsPerObject system view created by the stored procedure SF_CreateSysViews, is used for each object individually.
For versions V22 and higher, a stored procedure, SF_SysSFFieldsTable is created to resolve this issue with the following syntax:
EXECUTE SF_SysSFFieldsTable ‘linked_server_name’
To read more about EnitityDefinition: EntityDefinition | Tooling API | Salesforce Developers
To read more about the query() method: query() | SOAP API Developer Guide | Salesforce Developers
Please reach out to firstname.lastname@example.org if you have any questions.