Azure Logic Appsのワークフローから Oracle データベースに接続する

適用対象: Azure Logic Apps (従量課金プラン + Standard)

ワークフローで Oracle データを操作する必要がある場合は、Azure Logic Appsの Oracle Database コネクタを使用して Oracle データベースに接続します。 オンプレミスまたはAzure仮想マシンでホストされているデータベースにアクセスできます。

Oracle Database コネクタは、次のような一般的なデータ統合タスクを解決するのに役立ちます。

  • 顧客レコードをデータベースに追加します。
  • データベース内の注文レコードを更新します。
  • ワークフローの一部としてテーブル行を取得、挿入、または削除します。

サポートされている Oracle Database のバージョン

次の表に、各コネクタでサポートされている Oracle DB のバージョンを示します。

Connector ロジック アプリ サポートされている Oracle DB のバージョン
管理された -消費
-標準
- Oracle 9 以降
- Oracle Data Access Client (ODAC) 11.2 以降
組み込み (プレビュー) Standard Oracle Database 11 以降

コネクタに関するテクニカル リファレンス

Oracle Database コネクタのバージョンは、 ロジック アプリワークフローの種類とホスト環境に基づいて異なります。

ロジック アプリ Environment コネクタのバージョン
消費 マルチテナント Azure Logic Apps マネージド コネクタ。コネクタ ギャラリーの 共有 フィルターの下に表示されます。

詳細については、「 Oracle Database マネージド コネクタリファレンス」を参照してください
標準 シングルテナント Azure Logic Apps、App Service Environment v3 (Windows プランのみ)、ハイブリッド マネージド コネクタ。 共有 フィルターの下のコネクタ ギャラリーに表示され、組み込みのコネクタ (パブリック プレビュー) が、コネクタ ギャラリーの 組み込みフィルターの下に 表示されます。

組み込みバージョンは、Azure Logic Apps ランタイムでインプロセスで実行され、ランタイムがネットワーク経由で Oracle エンドポイントに到達できるため、オンプレミス データ ゲートウェイは必要ありません。

詳細については、以下を参照してください。

- Oracle Database マネージド コネクタ リファレンス
- 組み込みのコネクタ リファレンス

組み込みのコネクタ操作 (プレビュー)

組み込みコネクタは現在、次のアクションをサポートしています。

名前 パラメーター Description 返品
クエリの実行 (executeQuery) - クエリ (query): string の種類で必須。 実行する SQL クエリ。

- クエリ パラメーター (queryParameters): 省略可能 ( object 型)。 含めるクエリ パラメーター。
SQL クエリを実行します。 arrayとしての SQL クエリの結果。
ストアド プロシージャの実行 (executeStoredProcedure) - ストアド プロシージャ名 (storedProcedure): string 型で必須。 実行するストアド プロシージャの名前。

- ストアド プロシージャ パラメーター (storedProcedureParameters): object 型の省略可能。 含めるストアド プロシージャ パラメーター。
ストアド プロシージャを実行し、結果セットと出力パラメーターを返します。 - 型のresultSets (string)。 ストアド プロシージャによって返される結果セットの一覧。

- 型のoutputParmaters (string)。 ストアド プロシージャによって返される出力パラメーター値。
行の取得 (getRows) - テーブル名 (tableName): string の種類で必須。 ソース テーブルの名前。

- Where Condition (columnValuesForWhereCondition): object 型では省略可能。 取得する行を識別する列のキーと値のペア。

- 行の取得 (skipCount) のオフセット: string 型の場合は省略可能。 スキップするエントリの数。 既定値は 0 です。

- 最大行 数 (maxcount): string の種類では省略可能です。 取得する行の最大数。 既定値は 0 です。

- 列の順序付け (orderBy): 省略可能 ( string 型)。 クエリ結果の順序付けに使用する列名。

- 列の選択 (filterBy): 省略可能 (string 型)。 テーブルまたはビューから取得する列の値。
指定した条件に基づいて 1 つ以上の行を取得します。 arrayとしてフェッチされた行。
テーブルの取得 (getTables) 現在のユーザーが所有するテーブルのみを返す (ownedTables): string 型の省略可能。 所有者が指定されたユーザーであるテーブルのみを返します。 テーブルの一覧を取得します。 arrayとしてのテーブルの一覧。
行の挿入 (insertRow) - テーブル名 (tableName): string の種類で必須。 テーブルの名前。

- 列の設定 (setColumns): object タイプは省略可能。 行フィールドの値。
行を挿入します。 object型の挿入された行。

前提条件

マネージド コネクタの前提条件(コンシュームとスタンダード)

組み込みのコネクタの前提条件 (Standard、プレビュー)

  • ホスト、ポート、DNS 解決、ファイアウォール規則など、Standard ロジック アプリ ワークフローが Oracle エンドポイントに到達できることを確認します。

  • Oracle データベース接続を作成するときは、次の値が必要です。

    • Oracle データベース サーバーの IP アドレス
    • ユーザー名
    • パスワード

    サーバー IP アドレスの場合は、次の形式でこの値を指定します。

    Format 構文 Example
    Easy Connect (非 SSL) < host>:<port>/<database-service-name> localhost:1522/XE
    Transparent Network Substrate (TNS) 記述子 (SSL): 完全な Oracle データソース記述子 (description=(retry_count=<リトライ回数>)(retry_delay=<遅延時間>)(address=(protocol=tcps)(port=<ポート番号>)(host=<ホスト>))(connect_data=(service_name=<サービス名>))(security=(ssl_server_dn_match=yes))) (description=(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=localhost))(connect_data=(service_name=XE))(security=(ssl_server_dn_match=yes)))
  • この例で使用されている [行の取得] アクションについて、アクセスするテーブルの識別子を把握しておく必要があります。

    この情報がわからない場合は、Oracle Database 管理者に問い合わせるか、ステートメント select * from <table-name> から出力を取得します。

既知の問題と制限事項

現在のコネクタのバージョンでは、トリガーはサポートされていません。 シナリオに合ったトリガーを使用してワークフローを開始し、Oracle アクションを追加します。

Connector Limitations
管理された - 複合キーを持つテーブル
- 入れ子になったオブジェクト型を持つテーブル
- 非スカラー値を持つデータベース関数
組み込み - 専用の更新または削除アクションはありません。 更新と削除のシナリオでは、 クエリの実行 アクションまたは ストアド プロシージャの実行 アクションを使用します。
- 接続の問題の一部は、接続の作成時ではなく、ワークフロー ランタイムでのみ発生する可能性があります。

アクションを追加します

Oracle アクションを追加して使用する手順は、組み込みのコネクタとマネージド コネクタのどちらを使用するかによって異なります。

組み込みのコネクタ アクションを追加する (Standard、プレビュー)

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. デザイナーでワークフローを開きます。

  3. 一般的な手順に従って、ワークフローに必要な Oracle Database アクションを追加します。

    この例では、[行の 取得 ] アクションを続行します。

  4. [接続情報] ウィンドウで、必要な情報 (必要な接続名、Oracle データベース サーバーの IP アドレス、ユーザー名、パスワードなど) を入力します。

    スクリーンショットには、Azure ポータル、標準ワークフロー デザイナー、および「行の取得」アクション用の Oracle Database 接続ペインが表示されています。

  5. 完了したら、[ 新規作成] を選択します。

  6. アクション情報ペインで、選択したアクションに必要なパラメーター値を入力します。

    たとえば、[ 行の取得 ] アクションを選択した場合は、テーブル名を入力します。

    スクリーンショットには、Azure ポータル、標準ワークフロー デザイナー、テーブル名の例を含む [行の取得] アクションが表示されます。

  7. ワークフローを完了するために必要なその他のアクションを追加します。

  8. ワークフローを保存します。 デザイナー ツールバーで、保存を選択します。

マネージド コネクタ アクションの追加 (消費型と標準型)

  1. Azure ポータルで、Consumption または Standard ロジック アプリ リソースを開きます。

  2. デザイナーでワークフローを開きます。

  3. 一般的な手順に従って、ワークフローに必要な Oracle Database アクションを追加します。

    この例では、[行の取得] アクションを引き続き使用します。

  4. [接続情報] ウィンドウで、必要な 接続情報を入力します。

  5. [ゲートウェイ] プロパティでは、使用する Azure サブスクリプションと Azure ゲートウェイ リソースを選択します。

  6. 接続が完了したら、[ テーブル名 ] ボックスの一覧からテーブルを選択します。

  7. [行 ID] プロパティに、テーブルに必要な行 ID を入力します。

    次の例では、人事データベースからジョブ データが返されます。

    スクリーンショットには、Azure ポータル、ワークフロー デザイナー、テーブル名と行 ID を持つ行の取得アクションが表示されています。

  8. ワークフローを完了するために必要なその他のアクションを追加します。

  9. ワークフローを保存します。 デザイナー ツールバーで、保存を選択します。

Oracle データベースの接続に関する問題のトラブルシューティング

エラー: ゲートウェイに接続できません

原因: オンプレミス データ ゲートウェイがクラウドに接続できません。

対応策: ゲートウェイをインストールしたオンプレミス コンピューターでそのゲートウェイが実行されており、インターネットに接続されていることを確認します。 電源がオフになっているかスリープ状態になる可能性があるコンピューターにゲートウェイをインストールしないでください。 オンプレミス データ ゲートウェイ サービス (PBIEgwService) を再起動してみることもできます。

エラー: 使用中のプロバイダーは非推奨です: "System.Data.OracleClient には Oracle クライアント ソフトウェア バージョン 8.1.7 以降が必要です。" 公式プロバイダーをインストールするには、https://go.microsoft.com/fwlink/p/?LinkID=272376 を参照してください。

原因: オンプレミス データ ゲートウェイが実行されているコンピューターに Oracle クライアント SDK がインストールされていません。

解決策: Oracle クライアント SDK をダウンロードして、オンプレミスのデータ ゲートウェイと同じコンピューターにインストールします。

エラー: テーブル '[Tablename]' には、キー列が定義されていません

原因: テーブルに主キーがありません。

解決策: Oracle Database コネクタでは、主キー列が含まれるテーブルを使用する必要があります。