- 締切済み
100万レコード規模のaccessDBテーブルからNullを置換する方法
半角スペースを含むcsvファイルを、accessのテーブルとしてインポートした際、スペースがnullとして扱われてしまいます。 これを0文字の空白に置換しているのですが、時間がかかり、かつ、成功したのかどうかよく分からないために困っています。 下記の2つの方法でnullを0文字の空白に変換してみたのですが、レコード数が多すぎるのか、置換がすべて成功していない模様です。 テーブルのフィールドを選択し、「置換」する フィールドのnullを見つけ、更新するクエリーを書く できれば、インポート元のcsvファイルやインポート後のテーブルを分割させずにメンテナンスを行いたいのですが、こういう場合に有効な対処方法というのはどのようなものがあるのでしょうか? 1.置換を高速化するアイディア 2.インポート段階で変換する方法があるかどうか? 3.置換結果を確認する方法 私は今までデータベースというものを全く使ったことがないので、これ以上のことがわかりません。ぜひ、専門家のご意見を頂きたいと思います。 よろしくお願いいたします。 【csvファイル仕様】 データ規模:100万行、1行あたり10~20列 元データはフィールド毎に固定長 データ形式:テキスト型、長整数型が混在 複数のテキスト型フィールドに半角スペースを含む 長整数型のフィールドは0を含む 【mdbファイル仕様】 マスタテーブルを格納する。他のmdbにあるクエリから参照される。 テーブル形式 テキスト型フィールド:255文字(今のところ・・・) 数値型フィールド:長整数型 規模: インポート後のmdbサイズは1テーブルあたり300MB程度。 そのmdbは同規模のテーブルを最高3程度まで保持する。 【使用環境条件】 OS:windows XP 最新SP DB:Access 2003 mdbファイルはネットワーク上にある。 ローカルHDDにコピーして作業することは可 CPU:Celeron 2.0GHz Memory:2GB Memory HDD:空き40GB以上
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- layy
- ベストアンサー率23% (292/1222)
- layy
- ベストアンサー率23% (292/1222)
- hn_cthulhu
- ベストアンサー率100% (1/1)
- ShowMeHow
- ベストアンサー率28% (1424/5027)
お礼
情報ありがとうございます。 DoCmd.TransferText メソッドでtableにrecordを追加すると思いますが、1行ずつnull置換ができるかどうがポイントのようですね。