SQL Server не импортирует данные в таблицу

Я использую SQL Server 2008 R2, я создаю следующую таблицу, а затем пытаюсь импортировать данные, щелкнув правой кнопкой мыши имя базы данных -> задача -> импортировать данные. Проходя настройки импорта, я назначаю соответствующие типы данных в настройках столбца. Я просмотрел исходный файл и не вижу ничего, что могло бы вызвать ошибки в процессе импорта. Я включил ошибки, которые я получаю, в сценарий таблицы.

Есть мысли по поводу ошибок? Или почему я не могу импортировать данные из таблицы?

Благодарю вас!

CREATE TABLE customer
(
id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL,
email_address varchar(128) NOT NULL,
date_of_birth date NOT NULL,
different_mailing_address bit,
employment_status varchar(255),
first_name varchar(128) NOT NULL,
last_name varchar(128) NOT NULL,
middle_name varchar(128),
gender varchar(255),
months_at_current_address integer,
months_at_current_employment integer,
months_at_previous_address integer,
mothers_maiden_name varchar(255) NOT NULL,
cellular_phone_number varchar(255),
daytime_phone_number varchar(255),
evening_phone_number varchar(255),
home_phone_number varchar(255),
work_phone_number varchar(255),
social_security_number varchar(255) NOT NULL,
special_employer_group varchar(255),
stated_lead_source  varchar(255),
stated_lead_source_desc varchar(255),
us_citizenship_status varchar(255),
us_non_immigrant_classification varchar(255),
us_tax_residency varchar(255),
existing_customer bit,
existing_customer_number varchar(255),
credit_report_fk integer,
current_home_address_fk integer,
expense_fk integer,
family_info_fk integer,
housing_info_fk integer,
id_verification_fk integer,
income_fk integer,
mailing_address_fk integer,
previous_employment_fk integer,
previous_home_address_fk integer,
primary_employment_fk integer,
worksheet_fk integer,
linked_dda_fk integer,
portfolio_id varchar(255),
portfolio_line_number varchar(255),
created datetime,
last_update datetime
)

Сообщения

Ошибка 0xc02020a1: Задача потока данных 1: Ошибка преобразования данных. Преобразование данных для столбца «Столбец 0» вернуло значение состояния 2 и текст состояния «Не удалось преобразовать значение из-за возможной потери данных».

Ошибка 0xc0209029: задача потока данных 1: код ошибки SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. «Выходной столбец «Столбец 0» (10)» завершился неудачно, поскольку произошел код ошибки 0xC0209084, а расположение строки ошибки в «выходном столбце «Столбец 0» (10)» указывает на сбой при ошибке. Произошла ошибка в указанном объекте указанного компонента. Перед этим могут быть опубликованы сообщения об ошибках с дополнительной информацией о сбое.

Ошибка 0xc0202092: задача потока данных 1: произошла ошибка при обработке файла "Y:\ANDERA\customer.csv" в строке данных 1.

Ошибка 0xc0047038: задача потока данных 1: код ошибки SSIS DTS_E_PRIMEOUTPUTFILED. Метод PrimeOutput для компонента «Источник — customer_csv» (1) вернул код ошибки 0xC0202092. Компонент вернул код ошибки, когда обработчик конвейера вызвал PrimeOutput(). Значение кода ошибки определяется компонентом, но ошибка является фатальной, и выполнение конвейера остановлено. Перед этим могут быть опубликованы сообщения об ошибках с дополнительной информацией о сбое.


person SEANDON    schedule 20.03.2015    source источник
comment
Какая первая строка данных в файле?   -  person Laurence    schedule 21.03.2015
comment
Может быть, покажите нам строку данных, которая терпит неудачу.   -  person abcdef    schedule 21.03.2015


Ответы (2)


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

Вы можете попытаться найти проблемное поле, разбив файл на части и импортируя его по частям, пока не найдете строку, вызывающую ошибку.

person Shawn    schedule 20.03.2015

для более эффективной помощи может быть полезно просмотреть некоторую тестовую строку вашего csv. Я попробую..

Я вижу в вашем SQL-скрипте несколько ограничений, которые могут генерировать ошибку при использовании этой функции импорта (много конкретных типов данных). По этой причине вы должны хорошо просмотреть свой csv. Помните, что при импорте из csv всегда есть преобразования между некоторыми строками в определенный тип данных в SQL, поэтому вы должны быть уверены, что строка правильно отформатирована для преобразования. Прежде всего, вы должны контролировать поля данных и даты и времени. Написано ли оно таким образом, чтобы SQL мог успешно преобразовать его? Затем есть много полей NOT NULL, правильно ли они заполнены в вашем CSV? являются целочисленными полями в вашем реальном целочисленном числе CSV (например, 1 , 2, а не 1,0 и т. д.).

Если вы планируете выполнить эту задачу один раз, что если вы импортируете свои данные в таблицу настолько просто, насколько это возможно (больше полей varchar (255) по мере возможности), после этого у вас может быть возможность на SQL-сервере преобразовать / преобразовать все поля в требуемом типе данных, а затем с помощью оператора (SELECT INTO) вы можете скопировать эти данные в свою сложную таблицу. Таким образом, вы могли бы лучше проверить, где проблемы.

person Antonio Bruno    schedule 20.03.2015