SOQL の 10,000 文字制限を処理する方法はありますか?
3 に答える
私はあなたができないとかなり確信しています。下部のこのページによると、エラーが発生します。それはAPIなので、それは彼ら次第です。
http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_soql_select.htm
SOQLステートメントは10,000文字を超えることはできません。この最大長を超えるSOQLステートメントの場合、APIはMALFORMED_QUERY例外コードを返します。結果の行は返されません。
これが私がすることです....
関数に 2 つのクエリがあり、最初にテーブル X から ID を取得し、次に WHERE IN 句でそれらの IDS を使用します。
最初のクエリが 526 を超える IDS (10,000 / 19 = 526 -- ID の長さは 18 + コンマ) を返し、2 番目のクエリでそれらを使用すると、エラーがスローされます。
私にできることは、# 返された IDS をチェックして、500 程度のバッチで実行することです。これにより、クエリ サイズは常に 10 k 未満になります。
もう 1 つの問題は、6000 を超える IDS を取得すると、100 を超える SOQL を実行する必要があり、別のガバナー制限に達することです。
ただし、最初の SOQL からの IDS リターンが 6k 未満であることが確実な場合は、それで問題ありません。
もう 1 つのオプションは、そのような場合に内部クエリを使用することです。