query has too many rows for direct assignment, use FOR loop
代码运行时,如果碰到这个错误,主要是因为循环内检索到的 sObject 子记录集超过了200 个,比如
for (Account acct : [SELECT Id, Name, (SELECT Id, Name FROM Contacts)
FROM Account WHERE Id IN ('1')]) {
List
Integer count = acct.Contacts.size(); // 引用子查询集合的时候报错
}
建议的写法,可以避免出现这个异常:
for (Account acct : [SELECT Id, Name, (SELECT Id, Name FROM Contacts)
FROM Account WHERE Id IN ('
Integer count=0;
for (Contact c : acct.Contacts) {
count++;
}
}