1

こんにちは、

わからないジレンマがあります。フラット ファイルを SQL db テーブルにインポートしようとしていますが、問題があります。SQL の私の列は、生年月日 DOB の日時列です。私に提供された抽出フラット ファイルには、この列が日付として含まれています...したがって、SQL にインポートすると、次のようになります。

Messages
Error 0xc0202009: Data Flow Task 1: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80004005  Description: "Invalid date format".
 (SQL Server Import and Export Wizard)

Error 0xc020901c: Data Flow Task 1: There was an error with input column "DOB" (212) on input "Destination Input" (147). The column status returned was: "Conversion failed because the data value overflowed the specified type.".
 (SQL Server Import and Export Wizard)

Error 0xc0209029: Data Flow Task 1: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "input "Destination Input" (147)" failed because error code 0xC020907A occurred, and the error row disposition on "input "Destination Input" (147)" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)

フラット ファイル内のすべての DOB に 00:00:00.000 のようなランダムな時間を追加する方法を見つけようとしています。たとえば、彼らは私に 1983-11-30 を送ってきましたが、私は 1983-11-30 00:00:00.000 を使いたいです

これを行う方法はありますか、それとも私に何ができるか考えている人はいますか? 前もって感謝します

4

5 に答える 5

1

yyyy-MM-ddMSSQLは、あなたのような文字列を日付に変換するのに問題はありません。自動的に終了し00:00:00.000ます。「データ値が指定されたタイプをオーバーフローしたため、変換に失敗しました」というエラーメッセージは、日付の1つが有効な範囲外であることを示しています。おそらく無効な生年月日を取得しました(0000-00-00記録などを探してください)。フラットファイルがExcelで簡単に解析できるように区切られている場合は、Excelにプルして、その列を並べ替えます。最小値と最大値の両方を見ると、問題のあるレコードが見つかる可能性があります。

于 2013-02-01T16:34:52.100 に答える
0

これは古いですが、SSIS データ フロー タスクで同様の問題が発生していました。これが誰かの助けになることを願っています。フラット ファイル ソース エディター ウィンドウ (接続マネージャー ページ内)

于 2015-03-14T23:55:05.390 に答える