Salesforce の SOQL で MALFORMED_QUERY が出る

そもそも何か

http://developerforcejp.s3.amazonaws.com/developer/docs/soql_sosl/salesforce_soql_sosl.pdf
Force.com SOQL および SOSL リファレンス p.8

ステートメントの文字数制限―デフォルトでは、SOQL ステートメントの長さは 10,000 文字を超えることが
できません。SOQL クエリのステートメントの文字数制限を増加するパイロットプログラムが導入されます。
上限を (最大で 20,000 文字まで) 上げるには、salesforce.comの担当者までお問い合わせください。この最大長
を超える SOQL ステートメントでは、API は MALFORMED_QUERY 例外コードを返します。結果の行は返され
ません。

要は構築したクエリの長さによって発生するものらしい。ちなみに、私が遊んでいる環境では C# 用のライブラリを使用している。

違うケースでも発生した

参考:

上記のケースのようにクエリの中にシングルクォートが入っていると発生するケースがある。

私が試していて発生したケースもこれ。

そもそもパラメータバインディングとかないの?

どうやら C# 用は公式にはないらしい。どうりで。。

それでもエスケープはせねばならぬらしい

以下のドキュメントが出ていた。

まとめ

ドキュメント通りエスケープしろって事かな? Bell って何。。まあ、言ってもただ API にリクエスト投げてるだけのライブラリだし、ちゃんとやれって事か。