MENU
Abo
事業会社勤務のSalesforceエンジニア。Apex・LWC・管理者設定の実務経験をもとに、Salesforce学習からIT転職まで発信中。

【保有資格】
・Salesforce認定アドミニストレーター
・Salesforce認定プラットフォームデベロッパーI / II
・Salesforce認定セールスクラウドコンサルタント
・Salesforce認定サービスクラウドコンサルタント
カテゴリー
アーカイブ

【Salesforce】SOQLでのバインド変数利用

SOQLで条件句を作成する際によくハマっていたことがあります。

以下のようなクエリを作成して何回システムに怒られたことか。。。

String str= 'テスト';
List<Account> accList= [SELECT Id, Name FROM Account WHERE Name = str];

これをApex内で書くと、コンパイルエラーとなってしまいます。

原因は「=」の後ろに「:」がないことです。

動的なSOQLでのバインド変数使用には「:」をつける必要があるんですね。

よって正しくは、

String str= 'テスト';
List<Account> accList= [SELECT Id, Name FROM Account WHERE Name =: str];

となります。

単純にクエリエディタでクエリを投げるだけだと「:」は必要ないので、Apex内でもそのまま書いてしまいがちで、毎回怒られてしまいます。。。

その都度「あ~、そうだったそうだった。」と修正するのですが、学び始めた当初は何が原因が全く分からず非常にイライラしていましたね。

システムに怒られる前に正しく書けるようになるぞー。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務のSalesforceエンジニア。Apex・LWC・管理者設定の実務経験をもとに、Salesforce学習からIT転職まで発信中。

【保有資格】
・Salesforce認定アドミニストレーター
・Salesforce認定プラットフォームデベロッパーI / II
・Salesforce認定セールスクラウドコンサルタント
・Salesforce認定サービスクラウドコンサルタント

コメント

コメントする

CAPTCHA


目次