15
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Autonomous AI Database から Salesforce をDB Linkで参照する方法(異種間DB連携)

15
Last updated at Posted at 2025-12-03

はじめに

Salesforce は多くの企業で基幹システムのフロントとして利用されていますが、以下のような要件を持つケースも増えています。

  • 他の業務システムと横断的にデータを扱いたい
  • SQL ベースで活用したい
  • データ退避や長期保管のために別DBへ移したい

こうした背景から、Salesforce を単体の業務アプリケーションとしてではなく、データ基盤の一部として活用したい というニーズが高まっています。

Autonomous AI Database は異機種間接続をサポートしており、Oracle 以外のデータソースに対しても データベース・リンク(DB Link)を簡単に構成することができます。

本記事では、Autonomous AI Database と Salesforce を DB Link で連携し、
Oracle SQL から直接 Salesforce のデータを参照する方法について紹介します。
Oracle 管理の異種間接続による Oracle 以外のデータベースへのデータベース・リンクの作成

構成イメージ

Autonomous AI Database (OCI)
|
| DB LINK
|
Salesforce

※注意点
Autonomous AI Database の DB Link を利用して Salesforce にアクセスした場合、参照は出来ますが、更新はできません。

セットアップ手順

以下のリンクを参考に、Autonomous AI Database の準備をしてください
Oracle AI Database編 - Autonomous AI Database (ADB)を使ってみよう


① Salesforce 側の準備

Salesforce環境の以下を情報確認します。

  • ログインURL
  • ユーザー名
  • パスワード
  • セキュリティトークン

② OCIにてクレデンシャルの作成(Salesforceのログイン情報)

Autonomous AI Database の データベース・アクション のSQLを立ち上げ、以下のSQLを実行します

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'SALESFORCE_CRED',  -- 作成するクレデンシャル名(任意)
        username        => 'xxxxxxx@force.com', -- Salesforceのログインユーザ名
        password        => 'xxxxxxx' --パスワード
    );
END;

③ベース・リンクの作成


BEGIN
    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name       => 'SALESFORCE_LINK', -- 作成するデータベース・リンク名(任意)
        hostname    => 'xxxxxx.my.salesforce.com', --Salesforceのホスト名
        port    => '19937',
        service_name       => 'salesforce',
        ssl_server_cert_dn => null,
        credential_name    => 'SALESFORCE_CRED', -- 使用するクレデンシャル名(②で指定した名前)
        gateway_params     => JSON_OBJECT(
                                  'db_type' value 'salesforce',
                                  'security_token' value 'XXXXXXXXXXXX' -- セキュリティトークン
                              )
    );
END;
/

④Salesforceへの問い合わせを実行

#サンプルSQL
#Salesforce の「取引先(Account)」オブジェクトの基本情報一覧が分かります。
SELECT Id, Name, Industry, CreatedDate FROM Account@SALESFORCE_LINK; 

結果イメージ
image.png

※異種間DB LINK実行時に、エラーが返された場合の対応

以下のエラーメッセージは、接続に使っている ODBC ドライバ(SOAP API の login() 認証)を Salesforceが拒否していますので、Salesforce側の設定を変更する必要があります。

ORA-28500: OracleからOracle以外のシステムへの接続で次のメッセージが戻されました:
[DataDirect][ODBC Salesforce driver][Salesforce]INVALID_OPERATION: SOAP API login() is disabled by default in this org. Contact the org administrator to enable SOAP API login(). (INVALID_OPERATION: SOAP API login() is disabled by default in this org. Contact the org administrator to enable SOAP API login().) {HY000,NativeErr = -12124}
ORA-02063: 先行のエラー・メッセージを参照してください2 lines(SALESFORCE_LINK)。

https://docs.oracle.com/error-help/db/ora-28500/28500. 00000 - "connection from ORACLE to a non-Oracle system returned this message:"
*Cause: The cause is explained in the forwarded message.
*Action: See the non-Oracle system's documentation of the forwarded
message.
行1 列53でエラー

Salesforceの設定で確認する箇所

Salesforceの「設定」より「ユーザーインターフェース」メニューを選択
「SOAP API login() を有効化」 にチェックが入っていることを確認
image.png

まとめ

本記事では、Autonomous AI Database と Salesforce を DB Link で接続し、Oracle SQL から Salesforce のデータを取得する方法を紹介しました。

DB Link を利用することで、ETL ツールや中間基盤を使うことなく、Oracle Database から外部データソースを「テーブルのように」扱える点は大きなメリットです。

特に、

  • Salesforce のデータを他DBとJOINしたい
  • SQLベースで分析・加工したい
  • データ退避・長期保管用途で別DBに集約したい

といったニーズがある場合、有効なアーキテクチャになり得ます。

ただし、

  • DB Link 経由での更新は不可
  • 常時連携したい場合は別サービスも検討する必要があること(OCI GoldenGate や Oracle Integration Cloudなど)

といった運用上のポイントは、設計段階で考慮しておく必要があります。

これらを理解した上で活用すれば、 Autonomous AI Database を「単なるDB」ではなく 異種データ統合のハブ(Sidecar) として利用することが可能になります。

15
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?