日本オラクル クロスインダストリー統括本部
OracleDirect テクニカルサービスグループ
すけ川 哲生
- INDEX -
はじめに   [詳細]
Oracle Migration Workbenchとは   [詳細]
Oracle Migration Workbench for Microsoft Accessのインストール   [詳細]
Oracleデータベースへの移行   [詳細]
Accessデータベースの変更   [詳細]
付録


はじめに

「意外と簡単!?」シリーズは、Oracle Database 10gを使用してこれからシステム構築を行い、 運用していく方向けに作成しており、初心者の方でも容易に構築/運用ができるよう全編にわたり極力GUIツールを 利用した説明として構成しております。
システム構築の方法や運用にはさまざまな方法が存在しますが、「意外と簡単!?」シリーズでは特定の ハードウェア上で小中規模のシステムを構築/運用することを目的とした実践的な資料として構成している関係上、 個々の機能の説明等は最小限に留めております。
また基本的にStandard Editionで利用可能な機能の範囲にて説明しております。
「意外と簡単!?」シリーズが皆様のシステム構築/運用の一助になれば幸いです。

  「意外と簡単!?」シリーズの資料構成

「意外と簡単!?」シリーズは、現在以下のシリーズから構成しております。
  本資料の構成

本シリーズ「意外と簡単!? Access⇔Oracle」では Microsoft Accessをご利用の方向けに簡単にOracleを使用していくための情報を提供していきます。
本資料は「Oracle Migration WorkbenchによるAccess→Oracle移行」編として、以下のような内容で構成しています。

1. Oracle Migration Workbenchとは
2. Oracle Migration Workbench for Microsoft Accessのインストール
3. Oracleデータベースへの移行
4. Accessデータベースの変更
5. 付録

データの移行のみの場合は、3までを、データを移行して後にAccessのフォーム/レポートを使用して 移行後のOracleデータベースに接続する場合は、4までを参照してください。

  本資料におけるシステム構成

クライアントPC
OS :Microsoft Windows 2000 Professional + SP4
AP :Microsoft Access 2000
データベース・サーバ
OS :Microsoft Windows 2000 Professional + SP4
DBMS :Oracle Database 10g Standard Edition for Windows

システム構成


Oracle Migration Workbench とは

Oracle Migration Workbench(Migration Workbench / OMWB)は、他社製のデータベース管理システムから Oracle Database(Oracle8i / 9i およびOracle Database 10g)への移行を容易にするツールです。
Migration Workbench を利用すると、トリガーやストアド・プロシージャを含むデータベース・ スキーマ全体の 移行を統合した環境で行うことができます。
本資料ではこのMigration Workbenchを使用してAccessからOracleへの移行を行います。

  Migration Workbenchの特徴

Migration Workbenchは100% Pure Javaのアプリケーションで、ウィザード画面にしたがって操作を 行うことで容易にGUIベースで移行を行うことができます。
また、Migration Workbench本体とWorkbenchプラグインという2つの主要なコンポーネントから構成されています。 Oracle Databaseへ移行するデータベースの種類に応じて異なるプラグインを使用することで異なる種類の データベースからの移行を可能としています。

Migration Workbenchのアーキテクチャ

ポイント:2005/2月現在、日本でサポートされているプラグインは以下のとおりです。
Microsoft SQL Server 6.5,7.0,2000
Microsoft Access 2.0,95,97,2000


  主要な機能

Migration Workbenchの主要な機能は以下のとおりです。

Oracle Migration Workbench for Microsoft Accessのインストール

この項ではAccessからデータベースを移行するために、 Migration WorkbenchをPCにインストールする手順を解説します。


  環境について

この項では、冒頭のシステム構成におけるクライアントPCに対してMigration Workbenchや その他関連ソフトウェアのインストールを行います。 また、システム構成に記述のあるOS、Accessなどはインストールされているものとします。 移行するAccessデータベース(mdb)のバージョンと、クライアントPCにインストールされている必要のある Accessのバージョンは以下のようになります。

移行するAccessデータベース 必要なMS-Accessソフトウェア
  MS-Access 2.0, 95, 97   MS-Access 97
  MS-Access 2000   MS-Access 2000

今回、使用しているAccessのバージョンはAccess 2000ですので、 本資料においてはAccess 2000のデータベースをOracleに移行していきます。


  ソフトウェアおよびドキュメントの入手

OMWB関連ファイルの入手

Oracle Technology Network Japan (OTN-J)より必要なソフトウェアおよびドキュメントを入手します。
現在(2005/02/28)ダウンロード可能な最新のバージョン(10.1.0.2)では以下のファイルが必須となります。 必要に応じ以下のファイルもダウンロードしてください。 また、以下のドキュメントも入手し目を通すようにしてください。
ポイント: 2005/02/28現在、Migration Workbench関連ファイルは以下のWebサイトよりダウンロードできます。
              http://otn.oracle.co.jp/software/tech/migration/


ODBCドライバ・バージョンのチェックと入手

以下のように、Accessのバージョンに応じて適切なODBCドライバがインストールされている必要があります。

Accessのバージョン    ODBCドライバのバージョン
   MS-Access 2.0, 95, 97    Microsoft ODBC driver release 4.00.4202.00以降
   MS-Access 2000    Microsoft ODBC driver release 4.00.4203.00以降


ドライバの入手や最新版のMicrosoft Data Access Components(MDAC)の入手は Microsoftの以下のWebサイトから行えます。

http://www.microsoft.com/japan/msdn/data/


ドライバ・バージョンは以下の手順でチェックすることができます。
1. Windowsの [スタート] → [設定] → [コントロールパネル] → [管理ツール] より、 「データソース(ODBC)」を起動します。「ODBCデータソースアドミニストレータ」というタイトルの アプリケーションが起動します。
2. 「ドライバ」タブをクリックします。
3. 「Microsoft Access Driver(*mdb)」のバージョンをチェックします。
             ODBCドライバのバージョン確認


  インストール要件の確認

Migration Workbenchをインストールする前に、製品のリリースノートを参照し、 「ハードウェア要件」および「ソフトウェア要件」を満たしていることを確認してください。
Oracle Migration Workbench 10.1.0.2ではそれぞれ以下のようになります。

ハードウェア要件 ソフトウェア要件

  Migration Workbenchのインストール

OTN-Jよりダウンロードして入手したMigration Workbenchをインストールします。

注意: Migration Workbenchをインストールするにはzipファイルを解凍できる解凍ツールが必要です。

1. Windowsを起動し、管理者権限をもつユーザとしてログオンします。
2. 必要に応じ、Migration Workbenchをインストールするディレクトリを作成します。
例) D:\Oracle\ を作成し、インストールディレクトリとします。
3. ダウンロードしたOmwb.zipをMigration Workbenchをインストールするディレクトリに解凍します。 解凍すると、Omwbというディレクトリが作成され、その中にMigration Workbenchのコンポーネントが インストールされます。
            Migration Workbenchの解凍・インストール

ポイント:この文書ではインストールディレクトリの下のOmwbディレクトリをOMWB_DIRと表記します。
例のようにD:\Oracle\にMigration Workbenchを解凍した場合、 D:\Oracle\Omwb\ がOMWB_DIRとなります。



  Accessプラグインのインストール

OTN-JよりダウンロードしたAccess用プラグインをインストールします。

1. Migration Workbenchがまだインストールされていない場合、先の手順に従ってインストールします。
2. ダウンロードしたMSAccess.jarファイルを、OMWB_DIR\Pluginsディレクトリにコピーします。
例) D:\Oracle\Omwb\Pluginsディレクトリにコピーします。
 
              Accessプラグインのインストール

    すでにPluginsディレクトリに同名のファイルがある場合は、新しいほうのファイルを使用するようにします。



Oracleデータベースへの移行

この章ではOMWBを使用したMicrosoft AccessからOracleデータベースへの具体的な移行手順を説明します。 この章の手順を実行することで、AccessデータベースのデータをOracleデータベースへと移行することができます。
本資料では、移行元となるAccessのデータベースの例として、Access(2000)に標準のサンプルアプリケーションである "ノースウィンド・サンプルデータベース(Northwind.mdb)"を使用します。


  移行前の準備

実際に移行プロセスを行う前の、準備作業について説明します。

Access側の準備
Microsoft Accessデータベースを移行する前に、以下の手順を実施します。
1. Accessデータベースファイルのバックアップを作成します。
2. 移行元となるAccessデータベースに適したMicrosoft Accessソフトウェアがインストールされていることを 確認します。(前章を参照)
3. 以下の点を確認し、該当する場合は「Oracle Migration Workbenchユーザーズガイド」を参照し、 適切に対処してください。(10.0.2では3-7ページを参照)
今回使用するサンプルでは特に対処の必要はありません。
  • Accessデータベースのセキュリティが有効である場合
  • 他のAccess データベースにリンクされた表がアプリケーションに含まれている場合
  • Access データベースがマスターでなく、レプリカ・データベースである場合
4. 移行の対象となるAccessデータベース(Access MDB)がMigration Workbenchをインストールした 環境からアクセス可能であることを確認します。
今回は、ローカルにノースウィンドサンプルのAccess MDBがあるものとします。 サンプルがAccessからきちんと開けることを確認してください。
5. Accessで「ツール」→「データベース ユーティリティ」→ 「最適化/修復」を選択して、Accessデータベース・ファイルを最適化します。


XMLファイルへのエクスポート
Accessデータベースの取得の準備として、Accessデータベースのスキーマ情報をXMLファイルにエクスポートします。
この作業はOracle Migration Workbench Exporter for Microsoft Access(Exporter) というツールを用いて行います。 このツールはAccess MDEファイルとしてパッケージされており、MDBファイルをXMLに エクスポートすることができます。
手順は以下のとおりです。
1. Accessのバージョンに応じて適切なExporterをオープンします。
  • Access 2.0, 95, 97の場合
    OMB_DIR\msaccess_exporter\omwb97.mde
  • Access 2000の場合
    OMB_DIR\msaccess_exporter\omwb2000.mde
                  OMWB Exporter


2. Exportのタイプを選択する画面が起動します。「Export Database Schema...」を選択します。
                  Exporter起動画面


3. 移行するAccessデータベース(MDBファイル)と出力されるXMLファイルの選択画面が起動します。それぞれを入力し、「Export」ボタンを押します。
XMLファイルはデフォルトでは選択したMDBファイルの位置に<MDBファイルと同じ名前.xml>というファイル名で作成されます。
ここでは、Northwind.xmlが作成されます。
                  Accessデータベースの指定画面


4. エクスポートが終了すると以下のようなメッセージが表示されます。 OKをクリックし、あとは「Exit」ボタンを押してExporterを終了してください。



5. Accessの移行対象オブジェクトに日本語が含まれている場合は、以下の手順を実行し、 生成されたXMLファイルを編集します。ファイルは3.の手順で指定した場所にあります。
ここでは、Northwind.xmlを編集します。
生成されたXMLファイルのファイル属性を変更するXMLファイルを右クリックして プロパティを表示し、プロパティの「読み取り専用」のチェックをはずします。
notepadなどのエディタを使ってNorthwind.xmlを開き、 「encoding="ISO-8859-1"」の部分を、「encoding="Shift_JIS"」に変更し、 ファイルを保存します。
 
                XMLファイルのencodingを変更



  ソース・データベースの取得

移行にあたって、移行元となるデータベースからデータベースの構造の情報を抽出します。 Migration Workbenchではこの情報ををソース・モデルとよび、ソース・モデルを取得する一連のプロセスを ソース・データベースの取得と呼びます。
また、実際にOracleにデータを移行する前に、移行先のOracleデータベースにあわせた移行先データベースの 構造を作成する必要があります。Migration Workbenchではこの構造をOracleモデルと呼び、先に取得しておいた ソース・モデルの情報を使用してOracleモデルを作成します。

ソース・データベースの取得には以下の2つの方法があります。
今回はオンラインによる取得を行う手順を説明していきます。

OMWBの起動とリポジトリの作成

まずは以下の手順でOMWBを起動し、リポジトリの作成をおこないます。
1. 以下のいずれかの方法でMigration Workbenchを起動します。

  • 「スタート」→「ファイル名を指定して実行」を選択し、以下を入力し、 OKをクリックします。
    OMWB_DIR\bin\omwb.bat
    例) d:\oracle\Omwb\bin\omwb.bat
  • OMWB_DIR\bin\omwb.batのアイコンをダブルクリックします。

                Migration Workbenchの起動


2. Migration Workbenchのリポジトリを選択します。
ここでは、「Default Repository」を選択します。 (Default Repositoryを選択すると、Migration Workbenchに含まれているOracle Liteデータベースが 格納先として使用されます。)

                    リポジトリ選択


3. リポジトリ作成
最初に起動したときは以下のようにリポジトリを作成します。
リポジトリ作成のプロンプトが出ます。Yesを押して続行します。


リポジトリが作成が終了すると図のようなメッセージが表示されます。 Closeをクリックしリポジトリの作成を終了します。
 


4. プラグインを選択する画面が自動で起動します。今回使用する 「Microsoft Access 2.0/95/97/2000 Plugin」を選択して、OKをクリックします。
 


5. リポジトリを初めて作成した場合はCapture Wizardが自動で起動します。 (初めてでない場合はOMWBのメイン画面が表示されます)
次項へ進みます。


Capture Wizardによるソース・モデルの取得

リポジトリを作成した後は、Capture Wizardを使用してソース・モデルを取得し、 そこからOracleモデルを生成します。
リポジトリを作成すると、Capture Wizardの初期画面は自動で起動します。
(自分で起動するには、OMWBのメイン画面より「Action」→ 「Capture Source Database」を選択して起動します。)
1. Capture Wizardの初期画面が起動します。Nextをクリックして先へ進みます。



2. 「Select Database to Capture」画面が表示されます。
ここでは以下の手順を行い、「XMLファイルへのエクスポート」の 項で生成したXMLファイルを読み込みます。


「Add XML File」をクリックします。
「Select XML File」ダイアログが表示されます。 「XMLファイルへのエクスポート」の項で作成したXMLファイルを選択して 「OK」をクリックします。
例) d:\Oracle\AccessDB\Northwind.xml
きちんと追加されると画面下部の「Microsoft Access XML File」の項に 追加したXMLファイルが表示されます。
「Next」をクリックし、次へ進みます。

3. 「Data Type Mappings」画面が表示されます。
Accessのデータ型が類似のOracleのデータ型にマッピングされていることが確認できます。
通常変更の必要はありませんので、「Next」をクリックして次へ進みます。



4. 「Create Oracle Model」画面が表示され、Oracleモデルを自動的に 作成するかどうかを選択します。
Oracle Modelの作成前にOMWBの設定を行う必要があるため、ここでは「No」を選択して 「Next」をクリックし次へ進みます。



5. サマリー情報が表示されます。
内容を確認し、「Finish」をクリックしてCaptureを開始します。



6. ソース・モデルの取得が開始されます。
以下のような画面が起動し、取得状況を表示します。



7. 以下のようなメッセージが出てCaptureが完了します。
「OK」をクリックして一旦終了します。



OMWBの設定とソース・モデルのチェック

移行ウィザードを一旦終了すると、左右2ペインで構成されたMigration Workbenchのメイン画面が表示されます。 左側がツリーになっており、項目をクリックすると右側に詳細が表示されます。また、上部にはメニューがあり、 各種ツールやウィザードの起動、OMWBの設定などを行うことができます。

まずはOMWBの設定として、移行先Oracleデータベースで作成されるデータベースのデータ・ファイルの位置を設定します。
1. メニューから「Tools」→「Options...」を選択します。
2. 「Options」画面が起動します。
             データ・ファイル・ディレクトリの指定


3. 「General」タブ(デフォルトで開いています)の「Data file directory」に移行する データベースの(表領域の)データベース・ファイルを作成するディレクトリを入力します。
データベース・ファイルの作成される場所ですから、このディレクトリは データベース・サーバのディレクトリであることに注意してください。多くの場合、データベース管理者は データベース関連ファイルを配置する場所を決めて管理しています。管理者のいる場合は、データファイルを 配置するディレクトリについて確認してください。
入力例) D:\oracle\oradata\orcl
入力が済んだら「OK」をクリックし設定を確定してください。
続いて、Captureされたソース・モデルの確認をします。左のペインにあるツリー項目を開き、 右側に表示される詳細とあわせ、各項目に問題がないかどうか一通り確認してください。
              取得したソース・モデル(Tables)


Northwindサンプルデータベースで必要な変更

ここまでの手順でAccess2000のNorthwind.mdbを移行してきたところで、ソース・モデルの 「Relations」(リレーション)を確認してみると、図のようにおかしな名前になっています。
  
              ソース・モデルのリレーション


このままOracleモデルを生成し、Oracleへの移行を実行すると、移行中に以下のようなエラーが発生してしまいます。
  

これはAccessのリレーションにつけられている名前の問題で、Captureされたソース・モデルの リレーションの名前が{5AD529B-BEA.....}のように中カッコで囲まれたOracleのSQLでは使用できない名前と なっているために発生します。(古いバージョンのmdbなどからアップグレードしたmdbなどで 発生するようです。)

この問題を修正するには以下の二つの方法があります。
  
Access上でリレーションを再作成する。
再作成すると、リレーションは正常な名前となりますので、 再度XMLファイルをエクスポートし、手順どおりにソース・モデルを作成します。
「XMLファイルへのエクスポート」の項で生成したXMLファイルのリレーションの項目を修正する。

以下は、の手順について説明します。
1. エクスポートしたXMLファイル(Northwind.xml)をnotepadなどのエディタで開きます。
2. OMWBの「Relations」以下に表示されているエントリの名前を検索し、 適切な名前に書き換えます。
  
                   例)リレーション名変更前


  
                   例)リレーション名変更後


   修正項目例
検索するエントリ 修正後の名前
{5AFD529B-BEA8-11D2-8735-00AA00B48B98}        運送会社受注
{5AFD529C-BEA8-11D2-8735-00AA00B48B98}        仕入先商品
{5AFD529D-BEA8-11D2-8735-00AA00B48B98}        社員受注
{5AFD529E-BEA8-11D2-8735-00AA00B48B98}        受注受注明細
{5AFD529F-BEA8-11D2-8735-00AA00B48B98}        商品区分商品
{5AFD52A0-BEA8-11D2-8735-00AA00B48B98}        商品受注明細
{5AFD52A1-BEA8-11D2-8735-00AA00B48B98}        得意先受注


3. XMLファイルの変更を保存します。
4. OMWBより、Capture Wizardを起動し、「Capture Wizardによるソース・モデルの取得」の 項の手順で再度XMLファイルを読み込み、ソース・モデルを作成します。
5. OMWBよりソース・モデルを確認し、リレーションの名前が修正されている事を確認します。
  


Oracleモデルの作成

ソース・モデルを取得し内容をチェックしたら、 続いてソース・モデルを元にOracleモデルを作成します。

1. メニューから「Action」→「Create Oracle Model...」を選択します。
2. 「Destination Database」画面が表示されます。 ここでは移行先データベースとして指定するOracleデータベースのタイプを 以下のタイプから選択します。
Oracle8i/Oracle9i/Oracle10g
Oracle9iLite
ここではを選択して「OK」をクリックし、次へ進みます。



3. Oracleモデルの作成が開始されます。
以下のような画面が起動し、取得状況を表示します。
  


4. 以下のようなメッセージが出て完了します。
「OK」をクリックして終了します。
  



  データベースの移行

前項までは、ソース・データベース(ここでは移行元のAccessデータベース)の情報を取得し、 移行先のOracleのモデルを作成しました。この項では、取得・作成した情報を元に実際の移行作業を行います。

その手順は以下のようになります。
       
データの入れ物を移行します。具体的には表領域、ユーザおよび表を移行します。
データを移行します。
残りのスキーマ・オブジェクトを移行します。

また、移行を実施するにあたっては以下の3つの方法をとることができます。
a) スキーマを作成し、データをオンラインで送信
b) スキーマをオンラインで作成し、データをオフラインで送信
c) スキーマの作成およびデータの送信をオフラインで行う

オフラインでの方法はスクリプトをベースに行い、大量のデータがあるときや、 オンラインでターゲットとなるデータベースに接続できない場合などに使用します。
今回は a) のオンラインによる方法で移行を行います。

Migration Wizard(移行ウィザード)

1. OMWBのメニューから「Action」→「Migrate to Oracle...」を選択してウィザードを起動します。
「Next」をクリックして次へ進みます。
  


2. 「Destination Database Details」画面が表示されます。
移行先データベースへの接続に必要な情報を入力します。
  


   入力項目と内容
項目      入力内容
Username      移行に必要な権限を持つユーザ名
Password      上記ユーザのパスワード
Host      移行先Oracleデータベースのサーバ名
Port      同Oracleのリスナーのポート番号(デフォルト1521)
SID      同Oracle SID


入力例
項目       入力内容
Username       system
Password       manager
Host       sample.oracle.com
Port       1521
SID       orcl

 
ポイント: これらの接続情報がわからないときは、移行先のOracleデータベース管理者に確認するか、付録の「データベースへの接続情報の確認」の項を参照して接続情報を確認してください。


3. 「Migrate Tablespace, Users, and User Tables」画面が表示されます。 「Next」をクリックして次へ進みます。
  


4. 「Migrate Table Data」画面が表示されます。
テーブルデータを移行するかしないのかを選択する必要がありますので、「Yes」を選択し、 「Next」をクリックして次へ進みます。
  


5. 「Select Schema Objects to migrate」画面が表示されます。
全てのスキーマ・オブジェクトが選択された状態になっていますので、 このまま「Next」をクリックして次へ進みます。
  


6. 「Summary」画面が表示されます。
サマリー情報を確認して「Finish」をクリックします。
  


7. 実際の移行プロセスが開始され、以下の画面のように進行状況が表示されます。
  


8. 移行プロセス中に、以下のようにエラーのダイアログが出ることがあります。 とりあえずエラーを無視してこのまま続行する場合は、「Ignore Error」をクリックして続行します。

Access2000のNorthwind.mdbでは、一部のリレーションが不適切なため、エラーが発生します。
「Northwindサンプルデータベースで必要な変更」の項を参照し、問題を修正しておいてください
  


ポイント: 移行中のエラー発生などのトラブルが発生した場合は、「Oracle Migration Workbench Microsoft Access 2.0、95、97、2000からの移行のためのリファレンス・ガイド リリース9.2」4章トラブルシューティング を参照してください。



9. 移行プロセスが終了すると、次項で説明するAccess側の変更のためのAccessデータベースの 変更ウィザードが自動で起動しますが、ここはいったん終了するために「キャンセル」をクリックし、 ウィザードを終了します。
 


10. 終了メッセージが表示されます。また、発生したエラー数などもレポートされます。
「OK」をクリックし、移行のプロセスを終了してください。
 


11. 移行プロセスのログが表示されます。
「OK」をクリックして終了します。
 


以上でAccessデータベースからOracleデータベースへのデータ移行は終了です。
移行されたOracleデータベースはデフォルトでは以下のように作成されています。 パスワードなどはデフォルトでoracleとなっていますので、必要に応じて変更してください。
 
Oracle移行後のデータベース情報(カッコ内はnorthwindでの例)
項目 入力内容
表領域       accessのデータベース名 (northwind)
ユーザ名       accessのデータベース名 (northwind)
パスワード       oracle



Accessデータベースの変更

この章では、Oracleデータベースに移行したデータをもとのAccessデータベースで使用していたフォームや レポートから使用するために、Accessデータベースを変更するための手順について説明します。

  Accessから利用する必要性

システムとしてみた場合、移行とは単純にデータのみを移行すればすむわけではありません。 それを利用するアプリケーションの移行も考える必要があります。
Accessからの移行を考えた場合、 アプリケーションの移行は大きく分けて以下の2つのパターンが考えられます。

Accessで作成したフォームやレポートを、 移行先のOracleデータベースに接続して使用出来るように修正する。
アプリケーションを新規に作成しなおす。

幸い、Accessにはリンクテーブルという仕組みがあるので、これを利用することで、 単純なAccessのフォームやレポートは比較的簡単にOracleデータベースを利用するように 変更することができます。
また、のパターンでもアプリケーションを一括で移行するのは大変な作業であることが多いですから、 で一旦以降後に必要な単位で段階的に アプリケーションを移行していくという方法をとることも考えられます。


  環境について

追加ソフトウェア

ODBCを使用してOracleデータベースに接続する必要があるため、本資料冒頭のシステム構成に加え、 以下のソフトウェアコンポーネントがクライアントPCにインストールされており、ターゲットとなる Oracleデータベースに接続できるように構成されている必要があります。 例えば、OracleデータベースやOracle Clientがインストールされている環境ではデフォルトで 上記ソフトウェアコンポーネントがインストールされますので、特に追加の必要はありません。
本資料ではこの両コンポーネントが含まれている「Oracle Data Access Software (ODAC)」から 「Oracle Client」「Oracle ODBC Driver」をAccessのあるクライアントPCにインストールして使用します。
追加した後のシステム構成は次のようになります。

                 システム構成(追加)


ポイント: ODACはOTN-Jよりダウンロードできます。現在、「Oracle ODBC Drivers for Oracle 10.1.0.2」をダウンロードするとODACにODBCドライバが含まれる形でダウンロードされます。


Oracleデータベースへの接続構成について

前項までで作成した移行先のOracleデータベースへの接続の構成を行っておく必要があります。
構成方法については、付録の「Oracle Net構成 −リモートDBへの接続構成」を参照してください。


  Accessデータベースの変更

ここではNorthwind.mdbを変更し、Accessの フォームなどを移行先のOracleデータベースに接続して使用出来るようにしていきます。

リンクテーブルのためのODBC接続の設定
1. 対象となるAccessデータベースを起動します。
ここでは、サンプルのNorthwind.mdbを開きます。
2. メニューから「ファイル」→「外部データの取り込み」→「テーブルのリンク」を選択します。
3. 「リンク」の指定をする画面が表示されます。
「ファイルの種類(T)」から「ODBC Databases()」を選択します。
  


4. 「データ ソースの選択」画面が表示されます。 すでに登録されたものを使用する場合はそれを選択しますが、ここではデータソースを新規に作成していきます。
「新規作成」をクリックします。
  


5. 「データ ソースの新規作成」画面が表示されます。
リストの中からOracle ODBCドライバを選択して「次へ」をクリックします。


  
ポイント: 通常Oracle ODBCドライバは「Oracle in <インストール時指定したOracleホーム名>」という名前になっています。
              例) Oracle in OracleClient10g_home1


6. 作成するデータソースの名前を入力します。
わかり易い任意の名前を入力してください。
  


7. 作成するデータソースのサマリーが表示されます。
「完了」をクリックし、データソースを作成します。
  


8. Oracleへの接続情報を入力する画面が表示されます。
各項目を入力し、「OK」をクリックして設定を完了します。
ユーザ名・パスワードはOracle Model作成時にOMWBが決めた値、もしくは移行の際にカスタマイズ した値になります。(POINT参照)
(これらの値はデータベースの接続時に変更することも可能です。)
  


   入力項目
項目 入力内容
サービス名       Oracle Netのネット・サービス名
ユーザー名       接続に使用するOracleのユーザ名
パスワード       上記ユーザのパスワード


入力例
項目 入力内容例
サービス名       orcl
ユーザー名       northwind
パスワード       oracle

ポイント: OMWBでは移行先のOracleデータベースに移行するデータを所有するユーザの、ユーザ名としてAccessデータベース名、パスワードとしてoracleをデフォルト値として設定します。


9. 再度「データソースの選択」画面が表示されます。
先に登録したデータソースを選択し、「OK」をクリックして先へ進みます。




10. 8.と同様にOracleへの接続情報を入力する画面が表示されます。
同様に入力し、「OK」をクリックして接続します。
11. 「テーブルのリンク」画面が表示されます。
リストにはOracleのテーブル名が<スキーマ名.テーブル名>の形式で表示されていますので、 目的のスキーマ、ここではNORTHWIND.〜を探します。



12. リストのNORTHWIND.~の中から、Accessのオブジェクトでテーブルの項に表示されているものを クリックして選択し、「OK」をクリックして次へ進みます。
今回、選択するのは以下の9つのテーブルです。
運送会社 / 仕入先 / 社員 / 受注 / 受注明細 /
商品 / 商品区分 / 都道府県 / 得意先



13. Accessのテーブルの画面に以前からのテーブルと、今作成したリンクテーブルが表示されます。



14. 作成されたリンクテーブルは「<スキーマ名>_<テーブル名>」になっていますが、 こちらをAccessのフォームなどから使用したい(≒Oracle上のテーブルを使用したい)ので、 アプリケーションの使用するテーブル名に変更する必要があります。
また、元々のテーブルは使用しないため削除もしくはリネームしておく必要があります。
今回は、元のテーブルを「BK_<テーブル名>」、リンクテーブルの名前をNORTHWIND _運送会社、 などから元々のテーブル名に入れ替えをします。
15. まず、もともとのテーブルの名前を「BK_<元のテーブル名>」に変更します。
例)「仕入先」→「BK_仕入先」



16. 次いで、リンクテーブル名を元々のテーブル名に変更します。
例)「NORTHWIND_仕入先」→「仕入先」



17. 以上でAccessデータベース側の変更は終了です。
フォームなどを起動して、以前と同様に使えることを確認してみてください。


付録

Oracle Net構成 −リモートDBへの接続構成

リモート(もしくはローカルでも)のOracleデータベースに接続して使用するには、 あらかじめOracle Netの必要部分を構成しておく必要があります。 (例えば、ODBCデータソースをODBC接続の使用前にあらかじめ作成しておくようなイメージです。)

通常は必要がない場合が多いですが、ローカルに複数のデータベースが 存在する場合などには設定する必要があるケースがあります。

注意: この構成を行い、Oracle Netを使用するには、使用しているPCにOracleデータベースか、 Oracle Clientが(厳密には必要とされるOracle Netのコンポーネントが)インストールされている必要があります。

1. Net Configuration Assistant(NetCA)起動
OracleもしくはOracle ClientをインストールしたディレクトリをORACLE_HOMEとすると、
ORACLE_HOME\bin\netca.bat
を実行します。

2. 「Oracle Net Configuration Assistantへようこそ」画面が表示されます。
「ローカル・ネット・サービス名構成」を選択し、「次へ」をクリックします。



3. 「ネット・サービス名の構成」画面が表示されます。
「追加」を選択し「次へ」をクリックします。
「ネット・サービス名の構成」画面が表示されます。
「追加」を選択し「次へ」をクリックします。



4. 「ネット・サービス名の構成−サービス名」画面が表示されます。
接続先データベースのサービス名を入力します。
わからない場合は、データベース管理者に問い合わせるか、付録の「Oracleデータベースへの 接続情報の確認」の項を参考に確認してください。



5. 「ネット・サービス名の構成−プロトコルの選択」画面が表示されます。
「TCP」を選択し、「次へ」をクリックします。



6. 「ネット・サービス名の構成−TCP/IPプロトコル」画面が表示されます。
データベースのあるホスト名を入力し、「次へ」をクリックします。



7. 「ネット・サービス名の構成−テスト」画面が表示されます。 必要に応じ接続のテストを行います。
特に必要がなければ、「いいえ」を選択して次へ進みます。
8. 「ネット・サービス名の構成−ネット・サービス名」画面が表示されます。 任意のネットサービス名を入力し、「次へ」をクリックします。
これがOracle ODBCやOracleクライアントから使用する際のサービス名になります。



9. 「他のネット・サービス名を構成しますか」で「いいえ」を選択し、NetCAを終了します。
8. で設定したネット・サービス名でサービスが追加されます。
データベースへの接続時など、構成したPC上でデータベースを利用する際にサービス名を要求される場合は、
このネット・サービス名を入力してください。


Oracleデータベースへの接続情報の確認

Oracleデータベースに接続するには、対象となるデータベースへの接続情報がわかっている必要があります。 わからない場合は、対象データベースの管理者に問い合わせるか、以下の手順に従ってデータベースへの 接続情報を取得する必要があります。

1. 対象となるデータベースのサーバへログオンします。
2. 以下のコマンドを実行し、データベースへの接続情報を表示します。
prompt > lsnrctl status

例えば、以下のような結果が表示されます。
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 10.1.0.2.0 - Production
Start Date                08-12月-2004 18:40:54
Uptime                    0 days 0 hr. 22 min. 21 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   E:\oracle\10.1.0.2EE\network\admin\listener.ora
Listener Log File         E:\oracle\10.1.0.2EE\network\log\listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sample.mydomain.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sample.mydomain.com)(PORT=8080))
(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sample.mydomain.com)(PORT=2100))
(Presentation=FTP)(Session=RAW))
Services Summary...
Service "ora10g" has 1 instance(s).
  Instance "ora10g", status READY, has 1 handler(s) for this service...
Service "ora10gXDB" has 1 instance(s).
  Instance " ora10gXDB", status READY, has 1 handler(s) for this service...
The command completed successfully


3. 上記の実行結果から必要な情報を確認します。
まず、サーバ名とPresentationがHTTP/FTPでないエントリのポートを確認します。
上記サンプルでは以下の行になります。

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sample.mydomain.com)(PORT=1521)))

ここより以下の接続に必要な項目がわかります。

サンプルでの項目と値の例
項目
プロトコル tcp
ホスト名     sample.mydomain.com
ポート番号 1521

ポイント: Oracleデータベースのデフォルトのポート番号は1521です。

4. 使用可能なOracleデータベースのサービスを確認します。
〜XDBとあるのはXML DBのサービスですので、ここでは無視します。
サンプルでは以下の行を確認します。

Service "ora10g" has 1 instance(s).
 Instance "ora10g", status READY, has 1 handler(s) for this service...

上段がサービス名、下段がSIDをそれそれ表します。つまり、各値は以下のようになります。

サンプルでの項目と値の例
項目
サービス名 ora10g
SID ora10g

以下のようにサービス名とSIDが異なる場合もありますので、注意が必要です。(以下は日本語でのメッセージ例)
サービス"ora10gr1.mydomain.com"には、2件のインスタンスがあります。
インスタンス"ora10gr1"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
インスタンス"ora10gr1"、状態READYには、このサービスに対する1件のハンドラがあります...

注意: データベースインスタンスが複数ある場合、サービスのエントリは複数あることになります。したがって、どのサービスが対象のデータベースであるか分からない時は、データベース管理者に確認する必要があります。


ODBCドライバと接続の設定

1. Oracle ODBCドライバがインストールされていることを確認します。 Oracle Universal Installerもしくは「ODBCデータソースアドミニストレータ」から確認できます。
通常、Oracle Clientのインストールされている環境ではインストールされていますが、 されていない場合は、
  • Oracle Database Server/Clientのメディア
  • Oracle Data Access Software for Windows (OTN-Jよりダウンロード可能)
などから「Oracle ODBC Driver」をインストールします。

         Universal Installer:ODBCドライバの確認


2. Oracle ODBCデータソースを登録します。

登録は以下のような手順で行います。

Windowsの [スタート] → [設定] → [コントロールパネル] → [管理ツール] より、 「データソース(ODBC)」を起動します。「ODBCデータソースアドミニストレータ」という タイトルのアプリケーションが起動します。
「User DSN」タブで「追加」をクリックします。
「データソースの新規作成」画面が表示されます。 リストの中から「Oracle in <Oracle_HOME名>」のドライバを選択して「完了」を クリックします。



「Oracle ODBCドライバ構成」画面が表示されます。
下記の項目を入力し、「OK」をクリックして作成します。
また、「TNSサービス名」は「Oracle Net構成」の項で設定してあれば、 選択可能なサービス名がプルダウンから選択できます。




項目
データソース 任意のデータソース名
TNSサービス名 OracleNet構成で設定したサービス名
ユーザID データベース・ユーザ名