有什么方法可以处理 SOQL 的 10,000 个字符限制
3 回答
我很确定你不能。根据底部的this page,它会引发错误。这是一个 API,这取决于他们。
http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_soql_select.htm
SOQL 语句不能超过 10,000 个字符。对于超过此最大长度的 SOQL 语句,API 返回 MALFORMED_QUERY 异常代码;不返回任何结果行。
这不是解决方法,但字符限制是 100k 而不是 10k :) https://help.salesforce.com/s/articleView?id=000333028&type=1 根据文章也许可以通过“产品管理”更改限制. 否则,我建议尽可能分解查询。
这是我会做的......
我的函数中有 2 个查询,首先从表 X 中提取 id,然后在 WHERE IN 子句中使用这些 IDS。
现在,如果第一个查询返回超过 526 个 IDS(10,000 / 19 = 526 - ID 的长度是 18 + comma )并且我在第二个查询中使用它们,那么它将引发错误。
我能做的是检查返回的#IDS 并以 500 个左右的批次运行它们,因此查询大小将始终小于 10 k。
另一个问题是,如果您提取超过 6000 个 IDS,那么您将需要运行超过 100 个 SOQL,这将达到另一个调控器限制。
但是,如果您确定从第一个 SOQL 返回的 IDS 小于 6k,那么它将为您工作。
在这种情况下,另一种选择是使用内部查询。