Skip to main content

SOQL Language Support

Use the query operations to retrieve records from a single object. When an entity name is provided instead of a query, the operation is assumed to be a SELECT * FROM <sObject>. All operations are logged to SLAM_Activity_Log

Speediful automatically parses and expands certain query syntax:

  • SELECT * FROM <sObject>
  • SELECT FIELDS(CUSTOM) FROM <sObject>
  • SELECT FIELDS(STANDARD) FROM <sObject>
  • SELECT FIELDS(ALL) FROM <sObject>

This parsing means that you can perform a SELECT FIELDS(...) operation without having to specify a LIMIT clause as would otherwise be required by SOQL

Relationship fields are supported by all APIs e.g. SELECT Account.Name, Account.Type, FirstName, LastName, Email, Owner.Name FROM Contact

Some examples of SOQL queries you can pass

  • LIKE filtering: @query = 'SELECT * FROM Account WHERE Name LIKE ''%United Oil%'''

  • Date filtering: @query = 'SELECT * FROM Account WHERE CreatedDate > 2025-08-01T01:02:03Z'

  • Date function filtering: @query = 'SELECT * FROM Account WHERE LastModifiedDate > N_DAYS_AGO:20'

  • Relationship fields: @query = 'SELECT Id, Owner.Name, FIELDS(CUSTOM) FROM Account LIMIT 1000'

Deleted and archived records (which in particular, applies to Task and Event objects), can be retrieved by passing parameter @queryAll = 1 into the SLAM query procedure

Bulk jobs that fail on the client side but complete on the Salesforce server can be retrieved using SLAM_download_job

Note that for very wide tables (Salesforce supports tables with over 900 custom fields), SELECT * query operations can exceed the 10,000 character SOQL limit. Speediful automatically manages these limitations for the user behind-the-scenes and provides a singular table with all columns requested at the end of the process. There are length limitations in regards to the command that is sent to Speediful from SQL Server of 4,000 charactes. Long SELECT statements may exceed this limit and fail to start Speediful correctly.

SOAP Query Limitations

Aggregate queries via the SOAP API are not supported at this time e.g. SELECT Type, SUM(AnnualRevenue) FROM Account

Subqueries are not supported e.g. SELECT Name, Type, (SELECT FirstName, LastName, Email FROM Contact) FROM Account

In both of these cases you will be better served copying the required sObject records to the database and performing the equivalent SQL query.