Импорт данных CSV в SQL Server с помощью мастера - загадочные сообщения об ошибках - PullRequest
1 голос
/ 22 сентября 2009

Я пытаюсь использовать мастер импорта SQL Server для импорта плоского текстового файла в SQL Server.

Похоже, это должно быть довольно просто. Текстовый файл разделен табуляцией, и в этом нет ничего необычного.

При предварительном просмотре данных в мастере все выглядит нормально. Я проверил сопоставления столбцов и все строки данных, и все типы данных выглядят нормально.

Но когда я запускаю его, я получаю сообщение об ошибке:

Copying to [dbo].[my_table] (Error) Messages

Error 0xc0202009: Data Flow Task: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Invalid character value for cast specification".
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Invalid character value for cast specification".
 (SQL Server Import and Export Wizard)

Error 0xc020901c: Data Flow Task: There was an error with input column "touch4_date" (260) on input "Destination Input" (179). The column status returned was: "The value could not be converted because of a potential loss of data.".
 (SQL Server Import and Export Wizard)

Error 0xc0209029: Data Flow Task: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "input "Destination Input" (179)" failed because error code 0xC0209077 occurred, and the error row disposition on "input "Destination Input" (179)" 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)

Error 0xc0047022: Data Flow Task: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on component "Destination - cm_campaigns" (166) failed with error code 0xC0209029. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)

Error 0xc0047021: Data Flow Task: SSIS Error Code DTS_E_THREADFAILED.  Thread "WorkThread0" has exited with error code 0xC0209029.  There may be error messages posted before this with more information on why the thread has exited.
 (SQL Server Import and Export Wizard)

Некоторые дополнительные детали ....

Плоский файл содержит только 22 строки.

В столбце, который, кажется, вызывает проблему ("touch4_date") - 19 строк содержат пустые значения, а три содержат следующие значения:

7/2/2008
8/25/2008
3/12/2009

Столбец базы данных - это дата и время, и он допускает нулевые значения.

Один из странных аспектов заключается в том, что плоский файл содержит другие столбцы с данными в том же формате «мм / дд / гггг», которые сопоставляются со столбцами даты и времени, но, похоже, они не вызывают никаких ошибок?

Может кто-нибудь пролить свет на проблему?

Заранее большое спасибо!

Ответы [ 2 ]

1 голос
/ 22 сентября 2009

Столбец touch4_date имеет значение, которое нельзя привести к типу столбца таблицы

0 голосов
/ 23 сентября 2009

попробуйте импортировать плоский файл в промежуточную таблицу со столбцом tough4_date в качестве varchar. затем вставьте в вашу фактическую таблицу, но используйте оператор case.

declare @string varchar(50)

set @string=''



select
    case @string 
        when '' then null
        else @string
    end as String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...