繁体   English   中英

SQL Server不将数据导入表

[英]SQL Server not importing data to table

我正在使用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:数据转换失败。 列“ Column 0”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。

错误0xc0209029:数据流任务1:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输出列“列0”(10)”失败,因为发生了错误代码0xC0209084,并且在“输出列“列0”(10)”上的错误行配置指定发生错误。 指定组件的指定对象发生错误。 在此之前可能会发布错误消息,其中包含有关失败的更多信息。

错误0xc0202092:数据流任务1:处理数据行1上的文件“ Y:\\ ANDERA \\ customer.csv”时发生错误。

错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 组件“源-customer_csv”(1)上的PrimeOutput方法返回了错误代码0xC0202092。 当管道引擎调用PrimeOutput()时,该组件返回失败代码。 故障代码的含义由组件定义,但是错误是致命的,并且管道停止执行。 在此之前可能会发布错误消息,其中包含有关失败的更多信息。

为了获得更有效的帮助,查看csv的某些测试行可能很有用。 我尝试

我在您的SQL脚本中看到了几个约束,这些约束可以使用此导入函数(许多特定的dataType)产生错误。 因此,您必须仔细检查自己的csv。 请记住,从csv导入时,在SQL中某些字符串到特定数据类型之间总是存在转换,因此必须确保该字符串格式正确以便转换。首先,您必须控制data和datetime字段。 它以SQL可以成功转换的方式编写吗? 然后,有许多NOT NULL字段,它们在CSV中正确填充了吗? 是CSV实整数上的整数字段(例如1,2而不是1.0等)。

如果您打算一次执行此任务,那么,如果将数据导入到尽可能简单的表中(更多varchar(255)字段作为可能的表),那之后,您可以在SQL Server中拥有转换/转换所有数据的可能性。所需数据类型中的字段,然后使用语句(SELECT INTO),可以将该数据复制到复杂表中。 这样,您可以更好地测试问题所在。

由于从一种数据类型转换为另一种数据类型,这听起来像是在截断数据。 查看您的CSV数据。 该文本可能比您输入的文本长,或者其中一个字段中可能有十进制值。 听起来可能是第二个。

您可以尝试通过将文件拆分并逐段导入直到找到导致错误的行来查找有问题的字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM