【问题标题】:Apex SOQL query removing object type designation from id in queryApex SOQL 查询从查询​​中的 id 中删除对象类型指定
【发布时间】:2017-09-22 14:27:11
【问题描述】:

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

} 捕捉(DmlException e){

    System.debug('DmlException: ' + e);

}

【问题讨论】:

    标签: salesforce apex soql


    【解决方案1】:

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

    WHERE Opportunity__c = '006A000000VmhPyIAJ'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多