スクリプトの実行リファレンス

この操作ではランダムな長さのスクリプトを 1 つのステートメントとして実行します。スクリプト実行は、次のいくつかの点で他の操作と異なります。

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

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

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

execute-script 操作では、SQL 射影を伴わない任意のスクリプトを実行します。次の方法で <db:execute-script> を使用できます。

  • 操作に execute-script を埋め込む。

  • ファイルから execute-script を参照する。

この両方のスクリプトの実行方法を同時に使用することはできません。

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

操作への埋め込み

<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>

ファイルからの参照

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

スクリプト実行操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。

スクリプト実行操作と一括操作では用途が異なります。 たとえば、データベースに多数の行を挿入するスクリプトを作成できますが、スクリプトに動的パラメータを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐ必要があります。

スクリプトで SELECT ステートメントを実行できますが、SELECT ステートメントを実行すると、データは返されず、データ入力の問題が生じます。したがって、これは無意味です。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub