
お知恵を貸してください。
ただ今、VB.NETでアクセスで開発されたアプリケーションを、
VB.NETに移行する開発をしているのですが、その中で、
現在のDBはアクセス、移行後のDBはオラクル10gなんですが、
何か良い移行方法は無いでしょうか?
ちなみに、テーブル名、レコード名は変更しますので、そのまま移行ではありません。
私が考えているのは、アクセスのデータをエクセルにコピペし、
それを.NETで読み込んでテープルに入れて1レコードずつ
オラクルに書き込んで行こうと考えております。
しかし、上記の方法でエクセルの読込方法が良く分かりません。
一旦、エクセルに取込む方法の場合の読込方法を教えてください。
また、もっと効率の良い方法をご存知でしたら教えてください。
開発環境は
OS : windows XP Pro
開発ソフト : VB.NET
DB : Access 2003 SP2
DB : Oracle 10g
です。なにぶん、VBでの開発経験が浅いので、
猿でも分かるように(W)お教えいただけると幸いです。
No.2ベストアンサー
- 回答日時:
テーブル名やレコード名(カラムIDの間違い?)が変更になるのであれば、
移行元のアクセスVBAで移行先のORACLEDBをオープンして、対応するテーブル・カラムにデータを入れるようにするのがいいんじゃないでしょうか。
わざわざ.NETにしなくてもEXCELにしなくてもAccess VBAで十分でしょう。
※とかいいながら、私はVB.NETで作ったので、こんな感じです。
------------------------------------------------------------
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.OracleClient
Public in_conn As OleDbConnection '-- Accessコネクション
Public out_conn As OracleConnection '-- ORACLEコネクション
Dim accessDBProvider As String
accessDBProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=なにか"
in_conn = New OleDbConnection(accessDBProvider)
in_conn.Open()
out_conn = New OracleConnection("Data Source=TNS名;USER ID=ユーザID;PASSWORD=パスワード")
out_conn.Open()
-----------------------------------------------------------
これで、AccessとOracleが同時に開けているので、あとはin_conn側からデータを読み込んで、out_conn側でデータを出力するようにします。
カラム数が変わらず、カラムの順序もタイプも変わらないのなら、単純に読み込んだものを出力するだけです。
-------------------------------------------------------------
Dim myDataSet As DataSet
Dim myOraCommand As OracleCommand
Dim myOraDataAdpt As OracleDataAdapter
Dim myCommand As OleDbDataAdapter
Dim myTable As DataTable
Dim myRow As DataRow
sql = "SELECT * FROM ACCESS_TBL"
myCommand = New OleDbDataAdapter(sql, in_conn)
myDataSet = New DataSet
myCommand.Fill(myDataSet)
sql = "SELECT * FROM ORACLE_TBL" '-- 0件のデータを読むことになるけど、テーブル構造が欲しいので取得する
myOraCommand = New OracleDataAdapter(sql, out_conn)
myOraCommand.Update(myDataSet)
--------------------------------------------------------------
私のは完全に我流なので、きれいじゃないけど、こんな感じにしました。
もし、ご参考になるのであれば。
ご回答ありがとうございます。
何とかできました。
できたのに!データがテキストであるらしい…何も悩む必要ありませんでした。
又、よろしくお願いします。
No.1
- 回答日時:
.net開発経験は無いのですが、結局はAccessMDBの内容をOracleに放り込む
だけですよね?
それなら、Accessで更新クエリなりVBAで簡単にデータ移行プログラムを
作ってやれば簡単なような気がしますが。
AccessからOracleへの接続はリンクテーブルでOKだと思います。
データ多いならADOをオススメしますが。
この回答への補足
おはようございます。ご回答ありがとうございます。
データ量としてはあまり多くないのですが、
テーブル名とレコード名の変更がありますので、
そのままデータ移行というわけには行かないような…
そのADOってやつなんですが、調べても良く分かりません。
分かりやすいサイトなんてあればご教示いただけますと
幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
OracleからAccessへのインポート
-
Pro*Cの構文エラー
-
実行時エラー3131 FROM 句の構...
-
PHPからデータベースに接続した...
-
テーブルに入っているデータと...
-
エラー3011
-
mysql_queryが動かなくて困って...
-
insert1つの処理でもトランザ...
-
sortable ギブアップです…助け...
-
sqlから多次元配列に要素を格納...
-
DBで検索結果に該当するデータ...
-
PHPのSQLインジェクションはspr...
-
アラートでyes noを作りたいです。
-
VBA ACCESS SQL...
-
PHPで[]の使い方について
-
phpで複数の検索語を検索対象に...
-
phpでmysqlを使ってデータベー...
-
チェックボックスによる複数の...
-
PHP と MySQL でテーブルの行数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
csvをDBへ読み込んだら、NULLが...
-
重複データをカウントするのに...
-
MySQLの一部を、計算した後に表...
-
PHPでデータベースに正しく入力...
-
Tableのカラムをボタン化するには
-
MySQLでの売上集計
-
phpPgAdminでテーブルが作成で...
-
MySQLの日付データについて
-
RFC822形式での日時の取得
-
すいません、質問をさせて下さい。
-
クイズ形式サイトの復習機能の構造
-
携帯サイト【PCからのアクセス...
-
プライベート機能の作成
-
セレクト文について
-
開始日と期間で終了日を求める...
-
phpの掲示板でレスがあったスレ...
-
構造を教えてください。
-
SQL CASE 文について
-
internal server error時の回避
おすすめ情報