ヘッダーをスキップ
Oracle® SQL Developer Microsoft Accessからの移行のための追加情報
リリース3.0
B66845-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 トラブルシューティング

この章では、Microsoft AccessデータベースからOracleへの変換時に必要となる可能性があるトラブルシューティングでの解決方法を説明します。

この章の内容は次のとおりです。

4.1 Microsoft Accessセキュリティの解除

SQL Developerでは、セキュリティが有効になっているMicrosoft Accessデータベースの移行はサポートされていません。SQL Developerを使用してMicrosoft Accessの表データを移行するには、保護されたデータベースの内容を新しいデータベースにコピーする必要があります。すべての内容(セキュリティ設定を除く)を新しいデータベースにコピーします。その後、その新しいデータベースをOracleに移行します。

保護されたデータベースの内容を新しいデータベースにコピーするには、次の手順を実行します。

  1. Microsoft Accessで、「File」「New Database」を選択します。

  2. 「Blank Database」アイコンを選択し、「OK」をクリックします。

  3. 「File New Database」ダイアログ・ボックスで、データベースの名前を入力し、「Create」をクリックします。

  4. 新しいデータベース内で、「File」「Get External Data」「Import」を選択します。

  5. インポート対象の保護されたMicrosoft Accessデータベースを選択し、「Import」をクリックします。

  6. 「Import Objects」ダイアログ・ボックスで、「Options」をクリックします。「Relationships」オプションおよび「Definition and Data」オプションが選択されていることを確認します。

  7. 「Tables」タブで、「Select All」を選択します。

  8. 「OK」をクリックします。

4.2 問合せによるリレーションの移行

現在、SQL Developerでは、問合せで構成されるリレーションの移行はサポートされていません。Microsoft AccessデータベースをOracleに移行する際のエラーを回避するには、次の手順を実行して、リレーションを手動で削除します。

  1. Microsoft Accessデータベース内で、「Tools」「Relationships」を選択します。

  2. リレーションシップを示す結合線を右クリックして、「Delete」を選択します。

  3. 「Yes」を選択して、削除を確定します。

  4. Microsoft AccessデータベースをOracleに移行します。

4.3 表に対する主キーの定義

指定した表に主キーまたは一意索引が定義されていない場合は、移行後にその表のレコードを更新することができません。Microsoft Jetデータベース・エンジンでOracle内の表に対するダイナセットをサポートするには、その表に主キーまたは一意索引が必要です。Oracleの表に主キーまたは一意索引が定義されていない場合、Microsoft Jetデータベース・エンジンはその表の編集不可能なスナップショットのみをオープンします。Microsoft Jetデータベース・エンジンを使用して表の内容を更新するには、次のいずれかの操作を行う必要があります。

4.4 Microsoft Access ODBCデータソースを使用した表データの移行

ODBCデータソースが有効なAccessデータベース・ファイルを参照していない場合、移行プロセスでのデータ移動時に、次のメッセージが表示されます。

The Microsoft Access ODBC Data Source Name "omwb_msaccess" is not configured properly

このメッセージが表示された場合、次の手順を実行します。

  1. 「スタート」「設定」「コントロール パネル」を選択します。

  2. 「データ ソース(ODBC)」を選択します。

  3. 「ユーザー DSN」タブでomwb_msaccessを選択します。

  4. 「構成」をクリックします。

  5. 「データベース」セクションの「選択」をクリックします。

  6. 移行するデータベースを参照して、「OK」をクリックします。

4.5 データ移行時の不適切なブール値

SQL Developerでブール値データを取得する場合、Microsoft Access ODBCドライバによって0(FALSEの場合)または1(TRUEの場合)のいずれかの値が戻されます。そのため、OracleでもFALSEとTRUEの値は0と1で表されます。

ただし、このデータをMicrosoft VBアプリケーションで使用すると、問題が発生する可能性があります。Microsoft VBでは、内部的にTRUEが(1ではなく)-1、FALSEが0で表されます。そのため、TRUEに基づいた評価を行うと、プログラムが論理的に誤った動作を行う場合があります。

プログラム・ロジックが変更されないように、次のコマンドを実行して、Oracle表のTRUEブール値を更新することをお薦めします。

UPDATE <TABLENAME> SET <COLUMNNAME> = -1 WHERE <COLUMNAME> = 1

4.6 Microsoft Accessデータベースの変更時のエラー

Microsoft Accessデータベースの変更中、次のエラー・メッセージが表示される場合があります。

Error 3051

The Microsoft Access database cannot open the file name.It is already opened exclusively by another user or you need permission to view its data.

解決方法

Microsoft Accessデータベースに対する書込み権限を取得してください。

Error 3111

Couldn't create; no modify design permission for table or query name.

解決方法

Microsoft Accessデータベースに適切な権限を設定してください。データベースの所有者でない場合は、この操作を実行できない場合があります。この場合は、データベースのコピーを作成してください。

データベースのコピーを作成するには、次の手順を実行します。

  1. Microsoft Accessに新しいデータベースを作成します。

  2. 「File」メニューから、「Get External Data」、続いて「Import」を選択します。

  3. 元のデータベースを選択します。

  4. すべてのスキーマ・オブジェクトを選択した後、「OK」を選択します。

  5. スキーマ・オブジェクトを新しいデータベースにコピーします。これで、新しく作成したMicrosoft Accessデータベースに適切な権限が付与されます。


注意:

Microsoft Accessデータベースで表を(ダイナセットまたはスナップショットを使用しないで)直接オープンすると、リンクされた表は使用できません。この制限は、データをOracleに移動した後も適用されます。この問題を解決するには、ダイナセットまたはスナップショットを使用するようにアプリケーションを変更します。