24.4. データを更新する SQL ステートメントのパラメータープレースホルダーおよび値


フローの途中にあるデータベースコネクションや、シンプルなインテグレーションを終了するデータベースコネクションは、データを更新する SQL ステートメントを実行できます。データベースコネクションをインテグレーションに追加するとき、実行する SQL ステートメントのプレースホルダーパラメーターを指定できます。実行中、入力パラメーターの値がコレクションにあるとコネクションはバッチ更新を実行できます。

SQL ステートメントでのパラメーターの指定

インテグレーションを作成または編集し、データベースを更新するコネクションを追加する場合、ランタイムにコネクションが実行する SQL ステートメントにプレースホルダーパラメーターを指定したり、ランタイムに実行されるストアドプロシージャーにプレースホルダーを含めることができます。以下に例を示します。

INSERT INTO TODO(task, completed) VALUES(:#param_1, :#param_2)
DELETE FROM TODO WHERE task LIKE :#param_3

これらのプレースホルダーの値を指定するには、フローのデータベースコネクションの前にデータマッピングステップを追加します。データマッピングステップで、適切なソースデータフィールドをターゲットデータフィールドにマップします。たとえば、ソースデータを :#param_1:#param_2、および :#param_3 ターゲットフィールドにマップします。データマッパーステップの追加 を参照してください。

パラメーター値のコレクションでのバッチ更新

ランタイムにデータベースコネクションがデータを挿入、削除、または更新する SQL ステートメントを実行すると、実行された SQL ステートメントは多くの場合で 1 つ以上のプレースホルダーパラメーター (例: :#task) を指定します。この場合、パラメーターの単一セットまたはパラメーターセットのコレクションをコネクションの入力とすることができ、セットの各要素が対応するプレースホルダーパラメーターの値を定義します。

たとえば HTTP リクエスト (Webhook) や API プロバイダーインテグレーションの REST API サービスに送信されたリクエストなど、データベースコネクションへの入力はフローの前のコネクションから取得されます。入力がコレクションである場合、コネクションはバッチモードを使用してテーブルを更新します。たとえば、以下の SQL ステートメントについて考えてみましょう。

insert into todo (task) values (:#task)

入力コレクションに 3 つの値が含まれる場合、コネクションは値ごとに 1 つずつ、3 つのレコード挿入します。ここで、2 つのプレースホルダーパラメーターを持つ SQL ステートメントについて考えてみましょう。

insert into todo (task, completed) values (:#task, :#completed)

この SQL ステートメントを実行するコネクションへの入力で、データシェイプ仕様は単一の要素を指定できます。例を以下に示します。

{"task": "write some docs", "completed": 0}

代わりにコレクションを指定することもできます。例を以下に示します。

[{"task": "write doc", "completed": 1},
 {"task": "publish doc", "completed": 0}]

コレクションを入力とする場合、コネクションはパラメーター値に各セットに対して 1 度挿入操作を実行します。この例では、コネクションはパラメーター値の各セットに 1 つずつ、2 つのレコードをテーブルに追加します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.