• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:access → Oracleへのデータ移行(VB.NETで))

VB.NETでのOracleへのデータ移行方法について

このQ&Aのポイント
  • VB.NETで開発されたアプリケーションをOracleに移行する方法について教えてください。
  • アクセスのデータをエクセルにコピーし、VB.NETで読み込んで1レコードずつOracleに書き込む方法を考えていますが、エクセルの読み込み方法が分からないので教えてください。
  • もし効率の良い移行方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答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) -------------------------------------------------------------- 私のは完全に我流なので、きれいじゃないけど、こんな感じにしました。 もし、ご参考になるのであれば。

a_lone_Bee
質問者

お礼

ご回答ありがとうございます。 何とかできました。 できたのに!データがテキストであるらしい…何も悩む必要ありませんでした。 又、よろしくお願いします。

その他の回答 (1)

  • mttk1238
  • ベストアンサー率15% (9/59)
回答No.1

.net開発経験は無いのですが、結局はAccessMDBの内容をOracleに放り込む だけですよね? それなら、Accessで更新クエリなりVBAで簡単にデータ移行プログラムを 作ってやれば簡単なような気がしますが。 AccessからOracleへの接続はリンクテーブルでOKだと思います。 データ多いならADOをオススメしますが。

a_lone_Bee
質問者

補足

おはようございます。ご回答ありがとうございます。 データ量としてはあまり多くないのですが、 テーブル名とレコード名の変更がありますので、 そのままデータ移行というわけには行かないような… そのADOってやつなんですが、調べても良く分かりません。 分かりやすいサイトなんてあればご教示いただけますと 幸いです。

関連するQ&A