
お知恵を貸してください。
ただ今、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で質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) EXCELVBAでシートを他のブックにコピーする命令を出すと毎回存在しないシート名の問合わせがある 1 2022/05/07 15:12
- Excel(エクセル) EXCELVBAでシートを他のブックにコピーする命令を出すと毎回存在しないシート名の問合わせがある 2 2022/05/07 17:16
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- ドライブ・ストレージ 古い外付けHDDから新品外付けHDDへのデータ移行方法 (Mac) 2 2022/12/11 02:01
- CPU・メモリ・マザーボード 壊れかけのHDDからデータ救出する方法 14 2023/06/11 12:07
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでいいね機能を作りたいので...
-
csvをDBへ読み込んだら、NULLが...
-
MySQLでデータベースにデータin...
-
カラムにデータがあるかないか...
-
PHP+MySQLで、MySQLの信号機が...
-
php sqlite count 列数取得
-
画像をDBに登録する方法
-
DB Error: no such field
-
トランザクション処理
-
MySqlのテーブルのサイズを取得...
-
エクセルをMysqlに格納
-
PHP/HTMLページ印刷について
-
MySQLのテーブル選択について
-
PHPでフォームからデータDBに書...
-
access → Oracleへのデータ移...
-
ラジオボタンによる検索
-
phpでMySQL内の重複文字カウント
-
PHP prepare フィールド名をエ...
-
テキストボックスに入れた内容...
-
VBA ACCESS SQL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
csvをDBへ読み込んだら、NULLが...
-
変数にNULLを代入したい
-
カラムにデータがあるかないか...
-
ヒアドキュメントでSQLを書く事...
-
3つのテーブルを結合したSELECT文
-
MYSQLのレコードの数を表示した...
-
PHPでPostgreSQLのテーブルを表...
-
php sqlite count 列数取得
-
クエリObjectをforeachで回す時...
-
OracleからAccessへのインポート
-
PHP PDOを利用してカラムの削除...
-
DB Error: no such field
-
テーブルを使用してレイアウト...
-
PHPシステムでSQLのUPDATEがあ...
-
テーブルのカラムの属性を変え...
-
重複データをカウントするのに...
-
変数を組み入れたい
-
phpでテーブルを作る際変数によ...
-
phpの掲示板でレスがあったスレ...
おすすめ情報