# JDBC
このコネクターは、JDBC ドライバを利用して ANSI 準拠のあらゆるデータベースに接続できます。
# サポートされているデータベース
JDBC ドライバのある ANSI 準拠のデータベースすべてをサポートしています。
# Workato での JDBC への接続方法
JDBC ソースへの接続を作成するには、オンプレミスエージェントを使用する 必要があります。 JDBC コネクターはオンプレミスエージェントを通じた JDBC 認証を使って、JDBC ドライバとのセキュアな接続を確立します。JDBC 準拠のデータベースへの接続に向けてオンプレミスエージェントのプロファイルを設定する方法については、こちらを参照してください。
JDBC コネクターは、 Snowflake や SAP HANA といった ANSI 準拠のデータベースのみをサポートしています。データベースは、 INSERT のようなアクションを使用できるよう、バインド変数をサポートしている必要があります。
オンプレミスエージェントを使用した 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
条件でデータピルを使用する
スペースを含む列名は、二重引用符 (""
) または角括弧 ([]
) で囲む必要があります。例えば、 currency code を識別子として使用するには、括弧で囲まれなければなりません。
[currency code] = 'USD'
識別子が括弧で囲まれている WHERE
条件
# 複雑なステートメント
WHERE
条件にサブクエリーを含めることもできます。以下の例では、compensation
テーブルからアクティブではない従業員を抽出しています (その目的としては、間違って給料が支払われないようにすることが考えられます)。
id in (select compensation_id from users where active = 0)
Select rows アクションで使用すると、このステートメントは compensation
テーブル内のアクティブでなくなった (active = 0
) ユーザーに関連するすべての行を抽出します。
WHERE 条件内でサブクエリーを使用する
Last updated: 2023/8/31 1:07:14