Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将excel导入sql server执行错误(SSIS)_Sql Server_Excel_Import_Ssis_Ssis 2012 - Fatal编程技术网

Sql server 将excel导入sql server执行错误(SSIS)

Sql server 将excel导入sql server执行错误(SSIS),sql-server,excel,import,ssis,ssis-2012,Sql Server,Excel,Import,Ssis,Ssis 2012,我第一次尝试将excel文件导入sql server时,出现了此错误。你能帮帮我吗?不知道发生了什么事:| 操作已停止 初始化数据流任务(成功) 初始化连接(成功) 设置SQL命令(成功) 设置源连接(成功) 设置目标连接(成功) 验证(成功) 准备执行(成功) 预执行(成功) 执行(错误)消息 信息 错误0xc020901c:数据流任务1:源-Sheet1$.Outputs[Excel源]出错 输出].Source-Sheet1$上的[Threat]列。输出[Excel源 输出]。返回的列状

我第一次尝试将excel文件导入sql server时,出现了此错误。你能帮帮我吗?不知道发生了什么事:|

操作已停止

  • 初始化数据流任务(成功)

  • 初始化连接(成功)

  • 设置SQL命令(成功)

  • 设置源连接(成功)

  • 设置目标连接(成功)

  • 验证(成功)

  • 准备执行(成功)

  • 预执行(成功)

  • 执行(错误)消息 信息 错误0xc020901c:数据流任务1:源-Sheet1$.Outputs[Excel源]出错 输出].Source-Sheet1$上的[Threat]列。输出[Excel源 输出]。返回的列状态为:“文本被截断或一个或多个” 目标代码页中有更多字符不匹配。“。(SQL Server 导入和导出向导)

错误0xc020902a:数据流任务1:错误 “源-Sheet1$.Outputs[Excel源输出].Columns[Threat]”失败 因为发生了截断,而上的截断行处置 “源-Sheet1$.Outputs[Excel源输出].列[Threat]” 指定截断失败。服务器上发生截断错误 指定组件的指定对象。(SQL Server导入和 导出向导)

错误0xc0047038:数据流任务1:SSIS错误代码 DTS_E_PrimeOutput失败。Source-Sheet1上的PrimeOutput方法$ 返回错误代码0xC020902A。组件返回了一个故障代码 当管道引擎调用PrimeOutput()时。这句话的意思是什么 故障代码由组件定义,但错误是致命的且 管道停止执行。可能会发布错误消息 在此之前,请提供有关故障的更多信息。(SQL Server 导入和导出向导)

  • 正在复制到[dbo].[Sheet1$](已停止)

  • 执行后(成功)消息信息0x4004300b:数据流任务1:“目标-表1$”写入了0行。(SQL Server导入和 导出向导)


您正在导入的数据的文本可能大于表的列大小


最大化表列的大小,然后重试

检查源和目标上的
Threat
列的长度。请根据excel上的长度进行调整,基本上增加长度

或者,在Excel源代码编辑器中,单击“错误输出”选项卡

选择列
Threat
,并在截断列中将值设置为Ignore failure


这应该会有所帮助。

然后查看Stackoverflow链接中的想法。它可能正在尝试导入一些额外的空行,您可以允许(通过更改allow NULLS选项)或将失败的行导入SSIS中的其他数据集中,以单独处理失败的行。

您是否手动创建DFT?如果是:

1) 创建新的Excel连接管理器-链接Excel文件
2) 创建新的OLE DB连接管理器-选择您的数据库和表。
3) Excel源代码
4) 数据转换-将EXCEL列转换为DT_STR,使其成为Varchar而不是NVARCHAR。
5) OLE DB目标,即SQL server表


或者,您可以将该列设置为NVARCHAR,它将与EXCEL匹配,但如果它是VARCHAR列,则需要在数据转换中将数据转换为DT_STR。如果您需要更多帮助,请告诉我。

您的
Threat
列包含的数据长度超过了您选择的列类型(或未选择的列类型)。我认为SSIS将默认为nvarchar(255)。如果您确实如您所说的“不知道发生了什么”,那么这一定意味着您没有在谷歌上搜索错误消息。你应该从那里开始,事情是这样的。它仍然不起作用,我已经尝试将其更改为varchar(max)了。您的源代码上的输出是如何为该列配置的?您也必须更改它。您说“如何配置源上的输出”是什么意思?所有列都允许空值