質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

2回答

16119閲覧

Microsoft SQL Serverのあるテーブル、タブ区切りテキストファイルをインポートしたいが、DATE型への項目は 手元でどう定義すべき

saya24

総合スコア221

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2019/09/03 03:57

ManagementStudio内のタスクの操作で、テキストファイルからあるテーブルへの取込・インポートを実行しようとしています。
行き先となるテーブルに、日付項目があり当該列の属性はDATE型です。

テキストファイルはExcelからタブ区切りテキストとして保存したもので、これが先に述べた日付項目のせいでインポートが失敗してしまっています。
イメージ説明

  • 実行しています (エラー)

メッセージ
情報 0x402090de: データ フロー タスク 1: ファイル "C:\Users\XXXXXX\Desktop\テーマ一覧.txt" に対して処理されたデータ行の合計数は 879 です。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc02020c5: データ フロー タスク 1: 列 "YMDKAISHI" (18) を列 "YMDKAISHI" (55) に変換しているときに、データ変換に失敗しました。この変換により、状態値 2 と状態を示すテキスト "データが失われる可能性があるため、値を変換できませんでした。" が返されました。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0209029: データ フロー タスク 1: SSIS エラー コード DTS_E_INDUCEDTRANSFORMFAILUREONERROR。エラー コード 0xC020907F により、"データ変換 0 - 0.出力[データ変換の出力].列[YMDKAISHI]" が失敗しました。"データ変換 0 - 0.出力[データ変換の出力].列[YMDKAISHI]" のエラー行の処理により、エラーによる失敗が示されます。ここに示されたコンポーネントのオブジェクトでエラーが発生しました。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0047022: データ フロー タスク 1: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。入力 "データ変換の入力" (48) の処理中に、コンポーネント "データ変換 0 - 0" (47) の ProcessInput メソッドがエラー コード 0xC0209029 で失敗しました。このコンポーネントは、ProcessInput メソッドからエラーを返しました。このエラーはコンポーネントに固有のものですが、致命的なエラーであるため、データ フロー タスクの実行は停止されます。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。
(SQL Server インポートおよびエクスポート ウィザード)


上記エラーはExcelからタブ区切り出力したテキストファイルの上で 日付項目を 一律 2019-09-01 に変えた状態で、トライアルした結果です。
SQLServerの日付項目があるテーブルに対し、データをインポートする場合、当該列は 手元でどういった表記方法を採用した 日付を収めれば 無事インポートが完了するのでしょうか

日付項目がある場合は インポートできない、なんてことないですよね????

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

上記エラーはExcelからタブ区切り出力したテキストファイルの上で 日付項目を 一律 2019-09-01 に変えた状態で、トライアルした結果です。

SQLServerの日付項目があるテーブルに対し、データをインポートする場合、当該列は 手元でどういった表記方法を採用した 日付を収めれば 無事インポートが完了するのでしょうか

YYYY-MM-DDでインポートできます。

イメージ説明

イメージ説明

行き先となるテーブルに、日付項目があり当該列の属性はDATE型です。

と書いてあって

エラー 0xc02020c5: データ フロー タスク 1: 列 "YMDKAISHI" (18) を列 "YMDKAISHI" (55) に変換しているときに、データ変換に失敗しました。この変換により、状態値 2 と状態を示すテキスト "データが失われる可能性があるため、値を変換できませんでした。" が返されました。

(SQL Server インポートおよびエクスポート ウィザード)

というエラーだからデーブルの型が間違っているとか変なデータが入っているとかマッピングの指定がおかしいとかそういう問題だと思いますんで、まぁ頑張って調べてください。

投稿2019/09/03 04:40

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saya24

2019/09/03 05:46

ご丁寧な説明ありがとうございました。 エラー事象を説明いただいたことで 冷静になってテキストデータを見直してみると、不用意な改行が含まれていてレイアウト崩れを起しておりました。 エクセルの段階で1列内に改行文字が含まれていることを察知できていれば、皆さんの貴重なお時間を頂く必要もございませんでした。お騒がせいたしました。
guest

0

1年以上前なんでうろ覚えですが似たような事象で私は諦めました。
結局CSVをINSERT文に変換して実行しました。原因を探るよりこっちの方が早いと思いました。

可能であればSSMSのバージョンを下げてみると実行できるかもしれません。
同じファイルでも普通にインポートが通った環境もあったというような話だったと思います。

そもそも新規テーブルとしてインポートしようとしてもできなかったような覚えもあります。
文字列型でインポートを通して適当なテーブルから元のテーブルに入れるという手もある
と思います。ですがこれもできなかったと記憶しています。

投稿2019/09/03 05:40

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問