2017-09-22 4 views
0

機会のあるマスター詳細ルックアップ関係を持つカスタムオブジェクトをクエリしようとしています。私は動的にクエリを構築するとき、私はSOQLエラーを取得しています:IDのApexのクエリでオブジェクト型の指定をIDから削除する

System.QueryException: unexpected token: 'A000000VmhPyIAJ'

最初の3つの文字は、その例外では削除されている、完全なIDは次のとおりです。

006A000000VmhPyIAJ

私がダンプした場合私は(完全なIDを持つ)これを取得System.debugとクエリ文字列:

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電子){

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

}

答えて

0

は、where句の値に単一引用符をエスケープする忘れ。

WHERE Opportunity__c = '006A000000VmhPyIAJ'

関連する問題