私は2005年のスレッドを読みましたが、SOQLは文字列の連結をサポートしていないと言われています。
それがサポートされているかどうか疑問に思っていますが、誰かがこれを行っています。
私は連結しようとしていますが、運がありません:(
以下は、指定された電子メールでレコードを検索しようとしているAPEXコードです。
String myEmail = 'my@email.com';
String foo = 'SELECT emailTo__c, source__c FROM EmailLog__c
WHERE source__c = \'' +
myEmail + '\';
Database.query(foo)
レコードは実際にデータベースにありますが、何もクエリしません。デバッグは「row(0)」を表示します。これは、空が返されることを意味します。
私はconcatを間違った方法でやっていますか?
アップデート
一重引用符を追加する必要がない方法を見つけました。クエリを持つ文字列に対しても同じコロン変数を適用する必要があります。
String foo = DateTime.newInstance(......);
String bar = 'SELECT id FROM SomeObject__c WHERE createdOn__c = :foo';
List<SomeObject__c> result = Database.query(bar);
System.debug(result);
これも機能し、WHERE句にDateTimeが含まれている場合は、DateTimeを一重引用符で囲むことができないため必要です。