在Visual Studio中执行的程序包将取消而没有有用的错误

时间:2019-02-02 11:26:30

标签: excel postgresql visual-studio ssis etl

我正在学习Udemy课程Learn ETL using SSIS。第一个简单的任务是将数据从excel文件传输到数据库。

我所做的唯一更改是我正在尝试转移到PostgreSQL服务器而不是Microsoft SQL Server。因此,我必须首先为Visual Studio安装SSDT,并获得为程序包创建ODBC目标所必需的ODBC驱动程序。

到目前为止,一切都很好,但是当我尝试运行该程序包时,我得到了:

  

SSIS包“ Visual Studio 2017 \ Projects \ Excel_SQL \ Excel_SQL \ Package.dtsx”开始。   信息:从Excel到SQL,SSIS的0x4004300A。管道:验证阶段开始。   信息:从Excel到SQL,SSIS的0x4004300A。管道:验证阶段开始。   信息:从Excel到SQL,SSIS的0x40043006。管道:开始准备执行阶段。   信息:从Excel到SQL,SSIS的0x40043007。管道:预执行阶段开始。   信息:从Excel到SQL,SSIS的0x4004300C。管道:执行阶段开始。   SSIS包“ Visual Studio 2017 \ Projects \ Excel_SQL \ Excel_SQL \ Package.dtsx”已完成:已取消。   程序“ [14368] DtsDebugHost.exe:DTS”已退出,代码为0(0x0)。

没有数据传输结束。 excel文件非常简单,如连接所期望的那样,是excel 97-2003,仅包含2列,rollnumbermarksrollnumber包含11行数据,1 11,然后在“标记”列中添加一些随机标记。

我在Postgres上的数据库使用这两列设置为数字类型。

我真的不知道出了什么问题。

我在堆栈溢出时也看到过类似的问题,但这是关于文件类型不正确的:

我不认为这是我的问题。

有人可以建议吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

我认为情况尚不清楚,但是您可以遵循许多建议:

(1)尝试在32位中运行程序包

如果该软件包试图以64位模式运行并且您没有安装相关的引用,则可能导致此问题,请尝试以32位模式执行该软件包:

Package Properties >> Debugging >> Run64BitRuntime = false

(2)未安装AccessDatabaseEngine

如果缺少Microsoft Excel的Office连接组件,则可能引起此问题,请检查是否已安装它们:

(3)确保已按照适当的步骤创建ODBC目标

您可以按照本文来创建将数据导入postgres的程序包,检查所有步骤是否正确完成:

(4)做一些解决方法

为了指定错误源,请尝试将Postgres目标替换为平面文件目标,如果包执行成功,则问题出在ODBC目标,也请尝试将Excel源替换为FLat File Source,如果程序包执行成功,则问题出在Excel Source。

如果您是SSIS的新手,Som文章可以为您提供帮助:

(5)尝试使用SQL导入导出向导

如果已安装SQL Server,请尝试使用Excel Import Export向导创建并执行程序包:

答案 1 :(得分:0)

因此,在这种情况下,我只需要将(Source)excel文件移到我的E:\驱动器中。也许那条路太长了?来自E:\的文件夹只有3个,但是...起作用了。

谁能解释为什么这是问题所在?错误消息中没有指出这一点。