# JDBC

このコネクターは、JDBC ドライバを利用して ANSI 準拠のあらゆるデータベースに接続できます。

# サポートされているデータベース

JDBC ドライバのある ANSI 準拠のデータベースすべてをサポートしています。

# Workato での JDBC への接続方法

JDBC ソースへの接続を作成するには、オンプレミスエージェントを使用する 必要があります。 JDBC コネクターはオンプレミスエージェントを通じた JDBC 認証を使って、JDBC ドライバとのセキュアな接続を確立します。JDBC 準拠のデータベースへの接続に向けてオンプレミスエージェントのプロファイルを設定する方法については、こちらを参照してください。

JDBC コネクターは、 SnowflakeSAP HANA といった ANSI 準拠のデータベースのみをサポートしています。データベースは、 INSERT のようなアクションを使用できるよう、バインド変数をサポートしている必要があります。

オンプレミスエージェントを使用した JDBC への接続 オンプレミスエージェントを使用した JDBC への接続

項目 説明
Connection name この JDBC コネクションに対して、接続先の JDBC インスタンスを識別する一意の名前を付けます。
Is this app in a private network? 直接接続が許可されていないネットワークでデータベースを実行している場合は、オンプレミスエージェントを選択します。接続を試みる前に、アクティブなオンプレミスエージェントがあることを確認します。詳細は、オンプレミスエージェントに関するガイドをご覧ください。
On-prem connection profile 接続したいデータベースのプロファイル名。これはオンプレミスエージェントのconfig.ymlファイルで事前定義しておく必要があります。
Schema (任意) このコネクションで使用したいスキーマの名前。

# JDBC コネクターの使用

# テーブルとビュー

JDBC コネクターでは、接続の確立に使用された認証情報に対して利用可能な、すべてのテーブルとビューを扱えます。ユーザーは、それらを各トリガー/アクションのピックリストで利用することも、正確な名前を指定することもできます。

ピックリストからのテーブル選択 ピックリストからテーブル/ビューを選択

入力された正確なテーブル名 正確なテーブル/ビュー名をテキストフィールドに入力

テーブル/ビュー名の大文字と小文字が区別されるかは、データベースの実装に依存します。

# 単一行とバッチ行

JDBC コネクターでは、単一行またはバッチ行でデータベースの読み取りや書き込みを実行できます。バッチ行を使用したトリガー/アクションでは、操作するバッチのサイズを入力する必要があります。バッチサイズには1 ~ 100の間の任意の数字を指定できます。最大バッチサイズは100です。

バッチトリガーの入力 バッチトリガーの入力

これら2つの操作には、入力項目の違いに加えて、出力にも違いがあります。一度に1つの行を処理するトリガーには、その単一行のデータをマッピングできる出力データツリーがあります。

単一行の出力 単一行の出力

それに対して、複数行をバッチ処理するトリガーは、それらを行の配列として出力します。Rows データピルは、出力がそのバッチ内の各行のデータを含むリストであることを示しています。

バッチトリガーの出力 バッチトリガーの出力

そのため、バッチトリガー/アクションの出力は異なる方法で処理する必要があります。トリガーの出力は、Rows データピルをソースリストにマッピングする必要があるバッチ操作のアクション (Salesforce の Create objects in bulk アクション など) で使用できます。リストの操作方法の詳細については、リスト管理に関するページを参照してください。

バッチトリガーの出力を使用する バッチトリガーの出力を使用する

# WHERE condition

この入力項目を使用すると、アクションを実行する対象行をフィルタリングして識別できます。以下のように、複数のトリガーおよびアクションで使用できます。

  • トリガーで取得する行をフィルタリングする
  • Select rows アクションで行をフィルタリングする
  • Delete rows アクションで削除する行をフィルタリングする

この句は各リクエストの WHERE ステートメントとして使用されます。これは基本的な SQL 構文に従っている必要があります。

# 単純なステートメント

文字列値は一重引用符 ('') で囲む必要があります。また、使用する列はテーブル/ビューに存在していなければなりません。

単一列の値に基づいて行をフィルタリングする単純な WHERE 条件は、以下のようになります。

currency = 'USD'

Select rows アクションで使用すると、この WHERE 条件は currency 列の値が「USD」であるすべての行を返します。入力の際にデータピルを一重引用符で囲むことを覚えておいてください。

WHERE 条件でデータピルを使用する WHERE 条件でデータピルを使用する

スペースを含む列名は、二重引用符 ("") または角括弧 ([]) で囲む必要があります。例えば、 currency code を識別子として使用するには、括弧で囲まれなければなりません。

[currency code] = 'USD'

識別子が括弧で囲まれている WHERE 条件 識別子が括弧で囲まれている WHERE 条件

# 複雑なステートメント

WHERE 条件にサブクエリーを含めることもできます。以下の例では、compensation テーブルからアクティブではない従業員を抽出しています (その目的としては、間違って給料が支払われないようにすることが考えられます)。

id in (select compensation_id from users where active = 0)

Select rows アクションで使用すると、このステートメントは compensation テーブル内のアクティブでなくなった (active = 0) ユーザーに関連するすべての行を抽出します。

WHERE 条件内でサブクエリーを使用する WHERE 条件内でサブクエリーを使用する


Last updated: 2023/8/31 1:07:14