DBAmp: ‘EXCEEDED_ID_LIMIT: EntityDefinition does not support queryMore(), use LIMIT to restrict the results to a single batch’ when executing a SELECT * FROM [(linked_server_name)_Fields] system view

  • 6 December 2023
  • 0 replies
  • 323 views

Userlevel 1
Badge

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 support@cdata.com if you have any questions. 


This topic has been closed for comments