Apex SOQL查询从查询​​中的id中删除对象类型名称

时间:2017-09-22 14:27:11

标签: salesforce apex soql

我正在尝试查询与商机具有主要详细信息查找关系的自定义对象。当我动态构建查询时,我收到一个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);

}

1 个答案:

答案 0 :(得分:0)

忘记在where子句值上转义单引号。

  

WHERE Opportunity__c =' 006A000000VmhPyIAJ'