私はIBMWebsphereMessage Broker v6.0に取り組んでおり、ESQLでメッセージ・フローを作成しています。パススルーを使用して、データベースでselectクエリを実行しています。
ここで問題となるのは、passthruが'を使用してパラメータ文字列を開始および終了することです。また、SQLでは'を使用して定数を示します。WHERET1.col1='Y'のようになります。したがって、passthruパラメーターで'を使用している場合、それは文字列の終わりと見なされます。
ESQLコードは次のとおりです。
SET result1 = passthru ('select CASE WHEN T2.X_FLG = 'Y' AND (SELECT D2.RGN FROM V1.X AS D2
WHERE D2.DLR = V.DLR AND (D2.RGN = '500' OR D2.RGN = '600')) FROM V1
<left join all the tabels>');
ここで問題となるのは、パススルーパラメータ文字列がYの直前の最初の'で終了することです。これは、データベース選択クエリへのパラメータです。ESQLコンパイラは、構文エラーを示すコンパイラエラーを表示します。
パススルーする文字列の終わりとしてではなく、文字として認識されるように、'の前に追加される文字がありますか?\'または/'のようなもの?私はこれをすべて試しましたが、何も機能しないようです。