我正在学习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列,rollnumber
和marks
,rollnumber
包含11行数据,1
11
,然后在“标记”列中添加一些随机标记。
我在Postgres
上的数据库使用这两列设置为数字类型。
我真的不知道出了什么问题。
我在堆栈溢出时也看到过类似的问题,但这是关于文件类型不正确的:
我不认为这是我的问题。
有人可以建议吗?
谢谢。
答案 0 :(得分:3)
我认为情况尚不清楚,但是您可以遵循许多建议:
如果该软件包试图以64位模式运行并且您没有安装相关的引用,则可能导致此问题,请尝试以32位模式执行该软件包:
Package Properties >> Debugging >> Run64BitRuntime = false
如果缺少Microsoft Excel的Office连接组件,则可能引起此问题,请检查是否已安装它们:
您可以按照本文来创建将数据导入postgres的程序包,检查所有步骤是否正确完成:
为了指定错误源,请尝试将Postgres目标替换为平面文件目标,如果包执行成功,则问题出在ODBC目标,也请尝试将Excel源替换为FLat File Source,如果程序包执行成功,则问题出在Excel Source。
如果您是SSIS的新手,Som文章可以为您提供帮助:
如果已安装SQL Server,请尝试使用Excel Import Export向导创建并执行程序包:
答案 1 :(得分:0)
因此,在这种情况下,我只需要将(Source)excel文件移到我的E:\驱动器中。也许那条路太长了?来自E:\的文件夹只有3个,但是...起作用了。
谁能解释为什么这是问题所在?错误消息中没有指出这一点。