本記事では CData サポート担当からこんなことを聞かれたらどこを確認すべきか?という観点で、よく頂くお問合せ内容をご紹介します。
記事はこちら →CData ODBC Driver for Magento を使って、 ODBC 標準をサポートするあらゆるアプリケーションからデータに連携できます。Oracle Database Gateway for ODBC は、ODBC データソースにリモートOracle データベースとして連携接続できるようにするHeterogeneous Services agent (異種サービスエージェント)です。この記事では、CData ODBC Driver for Magento を使ってMagento からOracle にデータベースリンクを作成する方法、およびSQL*Plus ツールを介してMagento に連携してクエリする方法について説明します。SQL Developer からも、データベースリンクの作成およびクエリの実行ができます。
ドライバーには複数の接続プロパティがあり、Oracle データベースと同じようにMagento にアクセスできます。SQL*Plus およびSQL Developer のMagento を扱う場合は、以下のプロパティを設定します。Oracle ODBC Gateway との互換性のため、認証およびその他の必要な接続プロパティに加えて、以下の接続プロパティを設定する必要があります。
MapToWVarchar=False
このプロパティをSQL_WVARCHAR の代わりにSQL_VARCHAR に設定して文字列データ型をマップします。さまざまなインターナショナルキャラクタセットに対応するため、ドライバーはデフォルトでSQL_WVARCHAR を使います。unicode タイプが返されたときに、このプロパティを使ってORA-28528 Heterogeneous Services データタイプ変換エラーを防ぐことができます。
MaximumColumnSize=4000
このプロパティを設定して、カラムの最大サイズを4000文字に制限します。Oracle Database Gateway では、文字列型はカラムの最大サイズが4000である必要があります。
UpperCaseIdentifiers=True
このプロパティで、識別子を引用しないようにし設定します。このプロパティを使って、大文字の識別子をOracle にレポートします。Oracle はデフォルトで識別子を大文字で格納するため、大文字の識別子を引用から避ける必要はありません。
IncludeDualTable=True
このプロパティを設定して、Oracle DUAL 表をモックします。SQL Developer はこのテーブルを使って接続をテストします。
下記の手順に従ってODBC Gateway をMagento data に作成すると、リアルタイムMagento にOracle データベースとしてクエリすることが可能になります。
一般的な接続文字列は次のとおりです:
Magento はOAuth 1 認証標準を使用します。Magento REST API に接続するには、Magento システムにアプリを登録してOAuthClientId、OAuthClientSecret、およびCallbackURL 接続プロパティの値を取得する必要があります。 OAuth 値を取得して接続するには、ヘルプドキュメントの「はじめに」を参照してください。
また、Magento システムへのURL を提供する必要があります。URL は、Magento REST API を顧客として使用しているか管理者として使用しているかによって異なります。
Customer: Magento を顧客として使用するには、事前にMagento のホームページで顧客アカウントを作成します。これを行うには、「アカウント」->「登録」をクリックします。それからURL 接続プロパティをMagento システムのエンドポイントに設定します。
Administrator: Magento を管理者として使用するには、代わりにCustomAdminPath を設定します。この値は、「Admin」メニューの「Advanced」設定で取得できます。「System」->「Configuration」->「Advanced」->「Admin」->「Admin Base URL」を選択することでアクセスできます。
このページ上の「Use Custom Admin Path」設定がYES に設定されている場合、値は「Custom Admin Path」テキストボックス内にあります。それ以外の場合は、CustomAdminPath 接続プロパティをデフォルト値の"admin" に設定します。
Microsoft ODBC データソースアドミニストレーターで必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。
oracle-home-directory\hs\admin フォルダにinitmymagentodb.ora ファイルを作成し、以下の設定を追加します:
HS_FDS_CONNECT_INFO = "Your-Magento-DSN"
oracle-home-directory\NETWORK\admin にあるlistener.ora ファイルに、次のアドレスを追加します:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = mymagentodb)
(ORACLE_HOME = your-oracle-home)
(PROGRAM = dg4odbc)
)
)
oracle-home-directory\NETWORK\admin にあるtnsnames.ora ファイルに、次の接続ディスクリプタを追加します:
mymagentodb =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=mymagentodb))
(HS=OK)
)
次のコマンドを使って設定をテストします:
tnsping mymagentodb
SQL*Plus を起動し、次のコマンドでデータベースリンクを作成します:
CREATE DATABASE LINK MYMAGENTODB CONNECT TO "user" IDENTIFIED BY "password" USING
'mymagentodb';
これで、SQL*Plus で次のようなクエリを実行できます:
SELECT * from Products@mymagentodb;