• 締切済み

データのインポートについて

SQL Server 2005 Developer Editionを使っています。 データのインポートに関して、ご教授をお願い致します。 ■質問 インポート(データベースを右クリックし、【タスク】より 【データのインポート】を選択している)機能について、 エラーを発生させずに、インポートをすることができるのか。 ■状況 エクセルにデータをエクスポートしたものを、インポートしようと したときに、エラーが発生します。そのテーブルデータは、 SQLでインサートすることはできるものの、インポート機能を使って インサートをすることができません。 ■知りたいこと ・インポートができない理由について。  ⇒インポートができる方法について。 ・インポート機能は、エラーがよく発生するものなのか。 以上、ご教授をお願い致します。

みんなの回答

回答No.1

全く同じ事で悩んでいました。 ■知りたいこと ですが、ExcelやCSVファイルにエクスポートし、 そのファイルをインポートしようとした場合に該当の問題は良く発生します。 原因は、 (1)DBのデータ型とExcelセルのデータ型が一致していない (2)Excelにエクスポートする際に、Excelに対応する書式にDB値が変更されるが、逆にDBのインポートの際にうまく取り込めない 等、さまざまな要素が考えられると思います。 特にフラットファイル(CSV)に出力するとより顕著に表れます。 想像ですが、DBにVarcharを使ってませんか? ExcelはNTEXTとして吐かれると思うので、インポートの時にはあわせてあげる必要があります。(それでもエラーが出たりしますが) 素直にバックアップかデタッチしたほうがスムーズにいくでしょう。

jackboy197
質問者

補足

非常に参考になりました^^ BCPコマンドでファイルをインポートする方向で対応をしました。 エクセル出力は、あまりよろしくないとのことですので、 状況に応じて使用致します。 ありがとうございます。

関連するQ&A

  • 改行を含んだデータのインポート

    SQL Server 2005 Developer Editionを使っています。 インポートについて、皆様の知識のご教授をお願いします。 (1)、(2)と二つありますが、どちらか一方の回答でも 構いませんので、よろしくお願いします。 (1)Excelインポートによる取込について まず、Excelにテーブルデータをエクスポートしました。 データには、改行されているものレコードもあります。 そのExcelファイルをエクスポートしたテーブルに インポートしようとすると、エラーが発生します。 また、改行されているデータのレコードだけを 手動でコピー&ペーストしても、貼り付けることが できない状態です。さらに、Excel上のデータを直接コピーし、 該当のレコードの箇所に張り付けても、1行目だけしか 貼付けができない状態です。 (2)テーブル間の改行を含むデータ移行について AとBという、テーブル名だけが異なり、列名やデータ型が 同じテーブルだとします。 ここで、BからAテーブルへデータ移行させる際に、 改行されているデータについても、正常に移行できるように するには、どういう手順を踏めばいいか教えて頂きたく思います。 Bテーブルの列を全てコピーし、Aテーブルに貼り付けても、 うまく貼り付けることができませんでした。 改行されているデータは、どうやったら、テーブルに インポートできるのかを教えて頂けないでしょうか。

  • データのインポートの速度について

    mysqlの1個のテーブル(約1万行)をphpMyAdminでエクスポートしました。エクスポートは一瞬で終わりました。 それを再びphpMyAdminからインポートしようとしたのですが、データが重いらしくタイムアウトのエラーが出てしまいました。 sqlファイルを開いてみると、テーブルへのinsert文が約200行ずつのかたまりごとに区切られてしました。 きっとphpMyAdminの方で、エクスポートする時、「これくらいのかたまりずつ区切っておかないと、スムーズにインポートできなくてエラーになっちゃうよ」と気を利かせて区切ってくれているのだろうと思います。 仕方ないので、sqlファイルを「約200行ずつのinsert文」に分割して、phpMyAdminからインポートしました。 全部で1万行ほどのデータなので、50回ほどその作業を繰り返しました。 エクスポートはスムーズだったので、インポートがこんなに手間がかかるとは思っていませんでした。 最初にその1万行のデータをテーブルに読み込ませたのは、別のcsvファイルを load data infile したり、項目の並び順を入れ替えて insert したりするphpファイルを書いたのですが、さほど重くもなくスムーズに処理できました。 phpMyAdminを使わない方法の方が圧倒的に早い気がするのですが、大きいデータをインポートする際のスムーズな方法がありましたら、アドバイスいただけますでしょうか?

  • データのインポートに失敗します。

    SQL Server2005を使用しているのですが、データのインポート時に下記のエラーメッセージが出て失敗します。 警告 0x802092a7: データ フロー タスク: 長さ 50 のデータ フロー列 "列 XXX" から、長さ 48 のデータベース列 "ABCDEF" にデータを挿入することにより、切り捨てが行われる可能性があります。 (SQL Server インポートおよびエクスポート ウィザード) このエラーの回避方法をご存知の方がいらっしゃいましたら教えてください。よろしくお願いします。

  • OracleからSQLServer 2008へのデータのインポート

    Oracleからデータを取得し、SQL Server 2008へデータをインポートした際に、下記のエラーが発生します。これはどういう状態でしょうか? データ長がオーバーしているという事はないはずですので、何か別の問題がおきているのかと思われますが。。 どなたか是非、ご教授お願い致します。 メッセージ エラー 0xc02020c5: データ フロー タスク 1: 列 "xxxxxxxxx" (41) を列 "xxxxxxxxx" (485) に変換しているときに、データ変換に失敗しました。この変換により、状態値 4 と状態を示すテキスト "テキストが切り捨てられたか、または対象になるコード ページで 1 つ以上の文字が一致しませんでした。" が返されました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc020902a: データ フロー タスク 1: "出力列 "xxxxxxxxx" (485)" が切り捨ての発生により失敗しました。"出力列 "xxxxxxxxx" (485)" の切り捨て行の処理により、切り捨てによる失敗が示されます。ここに示されたコンポーネントのオブジェクトで切り捨てエラーが発生しました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047022: データ フロー タスク 1: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。入力 "データ変換の入力" (446) の処理中に、コンポーネント "データ変換 0 - 0" (445) の ProcessInput メソッドがエラー コード 0xC020902A で失敗しました。このコンポーネントは、ProcessInput メソッドからエラーを返しました。このエラーはコンポーネントに固有のものですが、致命的なエラーであるため、データ フロー タスクの実行は停止されます。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc02020c4: データ フロー タスク 1: エラー コード 0xC0047020 により、データ フロー タスク バッファに行を追加できませんでした。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047038: データ フロー タスク 1: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED。コンポーネント "変換元 - xxxxxxxxx" (1) の PrimeOutput メソッドからエラー コード 0xC02020C4 が返されました。パイプライン エンジンが PrimeOutput() を呼び出したときに、このコンポーネントからエラー コードが返されました。このエラー コードの意味はコンポーネントで定義されていますが、これは致命的なエラーであるため、パイプラインの実行は停止されました。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。 (SQL Server インポートおよびエクスポート ウィザード)

  • テーブルのエクスポート・インポート

    SQL Server2005 を使用しています。 テーブルのインポート・エクスポートに関して質問があります。 今まで、Oracleを主に使用していて、「EXP」「IMP」コマンドを使用して DMPファイルを介して別PCのデータベース間でテーブルのやり取りをしていました。(DB上のテーブルすべてや特定のテーブルのみなど) 同様のことをSQL Serverで実現したく下記を試したのですが上手くいきません。 1.Management Studio で「タスク」→「データのインポート(エクスポート)」   フラットファイル、Excel、MDBファイルなど試したのですが、   これらの中間ファイルを介した際にデータ型が変わってしまい   元の型のまま戻せない。   Oracleの「DMP」ファイルのようなものには落とせないのでしょうか? 2.「bcp」コマンド   これに関しては、複雑でよくわかりませんでした。   もし、このコマンドで実現可能であれば、やり方を教えて下さると   助かります。 以上、ながなが書きましたが宜しくお願い致します。

  • SQL serverへのインポートについて

    SQL Serverのデータベースを別のPCに移行する必要が出て、Excelファイルにエクスポートしたのですが、新しいPCへのインポートでエラーになってしまいます。 【旧PC】 Windows XP (エディションは不明)+SQL Server 2008 【新PC】 Windows 7 professional + SQL Server 2014 Express ※技術習得を兼ねているためとりあえず無料版を使用 詳細は以下の通りです。 ○手順 1.【旧】からExcelへエクスポート  ・[データマッピングの確認画面]で"失敗した可能性のあるcharからVarCharへの変換"と表示。  ・Excelファイルを確認した限りだと、値そのものは正しくエクスポートされている。 2.【旧】のデータベースをスクリプト化 3.【新】のコマンドラインで2.のスクリプトを実行(sqlcmd)  ・データベースの構成が正しく移行されている事は確認済み。 4.Excelから【新】へインポート ○結果  複数のテーブルで変換エラーが発生し、処理を停止。 ○補足事項 ・フラットファイルにエクスポートすると、正しくインポートされる。  (但し手順1と同じ画面で同じ警告が表示される) 最初はエクスポート時の警告を疑ったのですが、フラットファイルからは正しくインポートできたので、それが原因では無さそうです。ただそれだと手間なので、どうにかしてExcel経由で移行したいと思っています。

  • CSVファイルのデータをDBに取り込みたい。

    お世話になります。 現在、日本郵便が提供している「郵便番号データダウンロード」を利用して、全国の郵便番号をダウンロードして、SQL Serverのデータベースに新しくテーブルとして追加しようとしています。 しかし、データをインポートしようとすると必ずエラーが起こってしまい・・・同じようなエラー解決法をネットで探したのですが、現在起こっているエラーの解決法と違う?もしくは私が理解していないだけかもしれないのですが、もし解決法がお分かりになれば、噛み砕いてご教授願えればと思います。 以下環境およびエラー文章です。 開発環境:SQL Server2005 動作環境:Windows XP 「フラットファイルソース」からダウンロードしてきたCSVファイルを取り込み、先頭データ行を列名とし「SQL Native Client」のサーバに変換しようとしてエラーが出ました。 - 実行しています (エラー) メッセージ エラー 0xc02020a1: データ フロー タスク: データ変換に失敗しました。列 "ChoName" のデータ変換から、状態値 4 と状態を示すテキスト "テキストが切り捨てられたか、または対象になるコード ページで 1 つ以上の文字が一致しませんでした。" が返されました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc020902a: データ フロー タスク: "出力列 "ChoName" (34)" が切り捨ての発生により失敗しました。"出力列 "ChoName" (34)" の切り捨て行の処理により、切り捨てによる失敗が示されます。ここに示されたコンポーネントのオブジェクトで切り捨てエラーが発生しました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0202092: データ フロー タスク: データ行 2050 で、ファイル "C:\Documents and Settings\Administrator\デスクトップ\加山\住所\ken_all\KEN_ALL.CSV" の処理中にエラーが発生しました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047038: データ フロー タスク: コンポーネント "変換元 - KEN_ALL_CSV" (1) の PrimeOutput メソッドからエラー コード 0xC0202092 が返されました。パイプライン エンジンが PrimeOutput() を呼び出したときに、このコンポーネントからエラー コードが返されました。このエラー コードの詳細はコンポーネントで定義されていますが、これは致命的なエラーであり、パイプラインの実行は停止されました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047021: データ フロー タスク: エラー コード 0xC0047038 により、スレッド "SourceThread0" は終了しました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047039: データ フロー タスク: スレッド "WorkThread0" はシャットダウンの通知を受け取ったので終了処理中です。ユーザーがシャットダウンを要求したか、別のスレッド内のエラーが原因でパイプラインがシャットダウンされています。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047021: データ フロー タスク: エラー コード 0xC0047039 により、スレッド "WorkThread0" は終了しました。 (SQL Server インポートおよびエクスポート ウィザード) よろしくお願いします。

  • インポートできない。

    あるテーブルのデータをダンプしてエクスポート(export_utf8.sql)しました。 それを他のMysqlへインポートしようと以下のコマンドを実行したところ、 mysql -p --default-character-set=utf8 db < export_utf8.sql 以下のエラーが出力されました。 Unknown MySQL server host 'border="1"' (1) おそらく、エスケープ関連でコケているものかと思いますが、 どうすればインポートできるのかわかりません。 ご存知の方、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • PostgreSQLのデータインポートについて

    初めて質問させていただきます。どうかお教えください。 今2つの別々の共用レンタルサーバーに、 それぞれPostgreSQLが組み込まれており、 それぞれデータ以外は、同じ状態になっています。 そこで、片方のサーバーからもう一方のサーバーへデータを移して、 同じデータの状態にしたいのです。 今までは、サーバー上にあるphpPgAdminというツールから、 テーブルのデータをエクスポートし、その後もう一つのサーバーの phpPgAdminにてインポートしていたのですが、 データの量が多くなったために、上記でエクスポートしたデータを テキストエディタで20分割し、少しづつインポートしなければならなくなりました。(データ量が多いとインポート時にphpPgAdminでエラーが発生するようです) 共用レンタルサーバーで利用できる 多量のデータをインポートできるツールなどはございませんでしょうか hiroko

  • sqlファイルをコマンドでインポート

    サーバーを移転しようと、xoopsのbluesbbを 構造:DROP TABLEを追加、AUTO_INCREMENT 値を追加する、テーブル名やフィールド名を逆クォートで囲む データ:バイナリフィールドでは 16 進数を使用する にチェックを入れ、sqでlファイルに保存しました。 しかし、カテゴリーとトピックスは別のデーターベースにインポートできましたが、bluesbb.sqlファイルは、データーが大きすぎて、phpMyadminではインポート出来ませんでした。 しかも、エクスポートしたデーターベースは誤って削除してしまったので、もはや、エクスポートしたsqlファイルからの復旧をコマンドを使って行うしかないと思います。 新しいサーバーは、sshを使える環境にあります。 このような場合、コマンドからインポートをすることは出来るでしょうか? また、出来るとしたら、やり方を教えて頂きたいのですが?