2010-07-26 61 views

回答

2

我敢肯定你不能。根据底部的这个页面,它会抛出一个错误。作为一个API,取决于他们。

http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_soql_select.htm

SOQL陈述不得超过10000个 字符。对于 超过此最大长度的SOQL语句,API 返回MALFORMED_QUERY异常 代码;没有结果行被返回。

+0

你..这是一个问题,这就是为什么我要求替代.. – Priya 2010-07-26 11:13:08

+1

是的,你不能。尝试将select分解为2个查询?也许如果我们知道你想做什么,我们可以提供更好的解决方案。 – eyescream 2010-07-26 16:10:50

0

这里是我会做....

我在我的功能2个queres第一只拉从表X ID,然后第二个WHERE子句中使用这些ID。

现在,如果第一个查询返回超过526个IDS(10,000/19 = 526 - ID的长度为18 +逗号)并且我在第二个查询中使用它们,那么它会抛出错误。

我可以做的是检查#IDS返回并运行它们的500个左右批量查询大小将始终小于10 k。

另一个问题是,如果你拉超过6000个IDS,那么你将需要运行超过100个SOQL,这将达到另一个州长限制。

但是,如果您确定从第一个SOQL返回的IDS小于6k,那么它将为您工作。

另外一个选择是在这种情况下使用内部查询。