Импорт файла CSV в SQL-сервер …

Привет парни, я пытаюсь импортировать файл CSV к базе данных SQL-сервера без успеха. Я - все еще новичок к SQL-серверу, спасибо.

Operation stopped...

- Initializing Data Flow Task (Success)

- Initializing Connections (Success)

- Setting SQL Command (Success)

- Setting Source Connection (Success)

- Setting Destination Connection (Success)

- Validating (Success)
    Messages
    * Warning 0x80049304: Data Flow Task 1: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available.  To resolve, run this package as an administrator, or on the system's console.
     (SQL Server Import and Export Wizard)


- Prepare for Execute (Success)

- Pre-execute (Success)
    Messages
    * Information 0x402090dc: Data Flow Task 1: The processing of file "D:\test.csv" has started.
     (SQL Server Import and Export Wizard)


- Executing (Error)
    Messages
    * Error 0xc002f210: Drop table(s) SQL Task 1: Executing the query "drop table [dbo].[test]
    " failed with the following error: "Cannot drop the table 'dbo.test', because it does not exist or you do not have permission.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
     (SQL Server Import and Export Wizard)

    * Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column ""Code"" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
     (SQL Server Import and Export Wizard)

    * Error 0xc020902a: Data Flow Task 1: The "output column ""Code"" (38)" failed because truncation occurred, and the truncation row disposition on "output column ""Code"" (38)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
     (SQL Server Import and Export Wizard)

    * Error 0xc0202092: Data Flow Task 1: An error occurred while processing file "D:\test.csv" on data row 21.
     (SQL Server Import and Export Wizard)

    * Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "Source - test_csv" (1) returned error code 0xC0202092.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
     (SQL Server Import and Export Wizard)


- Copying to [dbo].[test] (Stopped)

- Post-execute (Success)
    Messages
    * Information 0x402090dd: Data Flow Task 1: The processing of file "D:\test.csv" has ended.
     (SQL Server Import and Export Wizard)

    * Information 0x402090df: Data Flow Task 1: The final commit for the data insertion in "component "Destination - test" (70)" has started.
     (SQL Server Import and Export Wizard)

    * Information 0x402090e0: Data Flow Task 1: The final commit for the data insertion  in "component "Destination - test" (70)" has ended.
     (SQL Server Import and Export Wizard)

    * Information 0x4004300b: Data Flow Task 1: "component "Destination - test" (70)" wrote 0 rows.
     (SQL Server Import and Export Wizard)
9
задан Dan Hulme 17 February 2012 в 22:03
поделиться

2 ответа

У вас действительно две основные проблемы при импорте:

Ошибка 0xc002f210: Удалить таблицу (ы) SQL Задача 1. Выполнение запроса "drop table [dbo]. [test] "не удалось с следующая ошибка: "Не удается отбросить таблица 'dbo.test', потому что она не существуют или у вас нет разрешения ».

Похоже, вы пытаетесь удалить таблицу, которой даже не существует. Решение: просто не делайте этого!

Ошибка 0xc02020a1: Задача потока данных 1 : Ошибка преобразования данных. Данные преобразование для столбца "Код" " возвращено значение статуса 4 и статус text "Текст был усечен или один или больше символов не совпадают в целевая кодовая страница. ".

Ваш столбец" Код ", очевидно, длиннее, чем результирующий столбец, который у вас есть в целевой таблице. Проверьте сопоставления - возможно, это очень длинная строка символов и длина по умолчанию для столбца VARCHAR в SQL Server слишком мал. Измените тип данных целевого столбца, например, VARCHAR (MAX) - это дает вам 2 ГБ места! Этого должно быть достаточно ....

Также кажется, что " Столбец "Код" содержит символы, которых нет в текущей выбранной кодовой странице в SQL Server. Можете ли вы удалить эти дополнительные специальные символы перед импортом? Если нет, вам может потребоваться использовать NVARCHAR (MAX) для вашего тип данных целевого столбца, чтобы он мог использовать Unicode для своих символов (таким образом поддерживая даже самые экзотические символы во входной строке).

7
ответ дан 4 December 2019 в 09:12
поделиться

"Текст был усечен или один или несколько символов не совпали с целевой кодовой странице."

может произойти, даже если:

  • ваш исходный плоский файл является файлом UNICODE

И

  • ваш целевой столбец определен как nvarchar(max).

Мне потребовалось некоторое время, чтобы разобраться в этом.

Причина

SSIS определяет типы данных в исходном файле, сканируя первые N строк и делая обоснованное предположение. Из-за бесконечно повторяющихся попыток заставить его работать, он где-то по пути запаролил метаданные для типа данных (OutputColumnWidth) до 50 символов, что вызвало усечение внутри пакета.

Решение

Для устранения проблемы необходимо изменить метаданные на вкладке "Дополнительно" источника данных. Попробуйте сбросить все настройки, играя с параметрами в "Suggest Types", или измените настройки по каждому полю. В моем случае (широкий входной файл) потребовалось действительно обескураживающее количество итераций, но в конце концов вы сможете заставить его работать.

14
ответ дан 4 December 2019 в 09:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: