スクリプトの実行の例 - Mule 4

データベース用 Anypoint Connector (Database Connector) の ​Execute script​ 操作ではランダムな長さの SQL スクリプトを 1 つのデータベースステートメントとして実行します。

この操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。考慮すべき点をいくつか挙げます。

  • スクリプトに複数のステートメントを含めることができる。

  • さまざまな種別のステートメントを使用できる。

  • 入力または出力パラメーターを受け入れることができない。

  • この操作では、SQL 射影を伴わない任意のスクリプトを実行します。

Execute script​ 操作は、スクリプトを操作に埋め込むか、スクリプトをファイルから参照することで使用できますが、この両方のスクリプトの実行方法を同時に使用することはできません。

スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各整数は、ステートメントの影響を受けたオブジェクトの数を表します。

Execute script​ 操作と ​Bulk​ 操作では用途が異なります。たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐようにします。

次の例は、​Execute script​ 操作を設定する方法 (操作をスクリプトに埋め込む方法とスクリプトをファイルから参照する方法) を示しています。

スクリプトを埋め込んで Execute Script 操作を設定する

Studio でこの操作を設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで「​database​」を検索し、​[Execute script]​ 操作を選択します。

  2. [Execute script]​ 操作を Studio キャンバスにドラッグします。

  3. 操作の設定画面の ​[General (一般)]​ タブで、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックし、グローバル要素設定項目にアクセスします。

  4. データベース接続情報を指定し、​[OK]​ をクリックします。

  5. 実行する SQL クエリスクリプトを ​[SQL Query Text (SQL クエリテキスト)]​ 項目に設定します。

    update PLANET set NAME='Mercury' where POSITION=0;
    update PLANET set NAME='Mercury' where POSITION=4`.

次のスクリーンショットは、Studio の設定を示しています。

Studio での Execute script 操作の設定 ([SQL Query Text (SQL クエリテキスト)] 項目で、実行する SQL クエリスクリプトを設定)
Figure 1. Execute script 操作の設定

XML エディターでは、​<db:execute-script>​ 設定は次のように記述されます。

<db:execute-script config-ref="dbConfig">
   <db:sql>
       update PLANET set NAME='Mercury' where POSITION=0;
       update PLANET set NAME='Mercury' where POSITION=4
   </db:sql>
</db:execute-script>

スクリプトを参照して Execute Script 操作を設定する

Studio でこの操作を設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで「​database​」を検索し、​[Execute script]​ 操作を選択します。

  2. [Execute script]​ 操作を Studio キャンバスにドラッグします。

  3. 操作の設定画面の ​[General (一般)]​ タブで、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックし、グローバル要素設定項目にアクセスします。

  4. データベース接続情報を指定し、​[OK]​ をクリックします。

  5. [Script Path (スクリプトパス)]​ 項目を、読み込むスクリプトファイルの場所に設定します (例: integration/executescript/bulk-script.sql​)。
    ファイルはクラスパスまたはディスク上のリソースを参照できます。

次のスクリーンショットは、Studio の設定を示しています。

Studio での Execute script 操作の設定 ([Script path (スクリプトパス)] 項目で、読み込むスクリプトファイルの場所を設定)
Figure 2. Execute Script 操作の設定

XML エディターでは、​<db:execute-script>​ および ​file​ 設定は次のように記述されます。

<flow name="executeScriptFromFile">
   <db:execute-script config-ref="dbConfig" file="integration/executescript/bulk-script.sql" />
</flow>