我正在尝试查询与商机具有主要详细信息查找关系的自定义对象。当我动态构建查询时,我收到一个SOQL错误:
System.QueryException:意外令牌:' A000000VmhPyIAJ'
ID中的前三个字符已在该异常中删除,完整ID为:
006A000000VmhPyIAJ
如果我使用System.debug转储查询字符串,我会得到它(带有完整的ID):
SELECT id,isdeleted,name,createddate,createdbyid,lastmodifieddate,lastmodifiedbyid,systemmodstamp,lastactivitydate,opportunity__c,issue__c,description__c,... FROM Exceptions__c WHERE Opportunity__c = 006A000000VmhPyIAJ
如果我将这个完全相同的字符串传递给database.query(),我会得到预期的结果。
任何人都知道造成这种情况的原因是什么?生成该查询的代码是我在自定义Apex中用于数百个其他查询的库,并且这些查询都没有失败。
实际查询区块:
try {
String query = 'SELECT id, isdeleted, name, createddate, createdbyid, lastmodifieddate, lastmodifiedbyid, systemmodstamp, lastactivitydate, opportunity__c, issue__c, description__c, ... FROM Exceptions__c WHERE Opportunity__c = 006A000000VmhPyIAJ';
exceptions = database.query( query );
} catch(DmlException e){
System.debug('DmlException: ' + e);
}
答案 0 :(得分:0)
忘记在where子句值上转义单引号。
WHERE Opportunity__c =' 006A000000VmhPyIAJ'