###前提・実現したいこと
VB.NET2013でAccess(mdb形式)のテーブルからSQLServer2014のテーブルに10万件のデータを
Insert処理しようと考えています。
ところが、コードを実行すると、以下のエラーメッセージが発生します。
「-2147467259 メモリー不足です。」
Providerを「Microsoft.ACE.OLEDB.12.0」にすると、
1万件は問題なくInsertされますが、それ以上になると「メモリ不足」が発生します。
※エラーが発生する場所は「mCon.Execute(strSQL)」です。
ADOでも他の方法でもよいですので、メモリ不足にならず一括でSQLServerに
Insertできる方法を教えてください。
一括では無理である場合は他の方法を教えていただければ助かります。
※設定でもかまいません。
よろしくお願いいたします。
###発生している問題・エラーメッセージ
「-2147467259 メモリー不足です。」
###該当のソースコード
'ADODBオブジェクト作成 mCon = New ADODB.Connection 'Accessオープン mCon.Open("Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=c:\test\xxx.mdb;" & _ "Persist Security Info=false") 'SQL文初期化 strSQL = "" 'SQLServerへのINSERT文発行 strSQL = "INSERT INTO [odbc;Driver={SQL Server};" & _ "Server=xx.xx.xx.xx;Database=DB;" & _ "UID=TEST;PWD=TEST1].Meisai " & _ "SELECT * FROM 明細" '処理実行 mCon.Execute(strSQL)
###試したこと
以下、OLEでも試しましたが、やはり同じ「メモリ不足」が発生します。
※エラーが発生する場所は「SQL.ExecuteNonQuery()」です。
Dim Cn As System.Data.OleDb.OleDbConnection
Dim SQL As System.Data.OleDb.OleDbCommand
Cn = New System.Data.OleDb.OleDbConnection
Cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=c:\test\xxx.mdb;" & _
"Persist Security Info=false"
Cn.Open()
SQL = cn.CreateCommand
SQL.Connection = cn
SQL.CommandText = "INSERT INTO [odbc;Driver={SQL Server};" & _
"Server=xx.xx.xx.xx;Database=DB;" & _
"UID=TEST;PWD=TEST1].Meisai " & _
"SELECT * FROM 明細"
SQL.ExecuteNonQuery() '実行
###補足情報(言語/FW/ツール等のバージョンなど)
言語:VisualStudio 2013 VB.net
DB :SQLServer2014 Access2013(mdb形式)

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/01 00:35
2016/07/01 01:22