Tag: ssis

将单个Excel单元导入到SSIS中

我试图从Excel文件导入一些度量值到SSIS中。 我已经用数据命名了每个单元格,并且希望能够configuration一个将在ForEach容器中更新的连接,以便每次指向每个命名范围,以便一次将数据一个值。 我看到很多关于如何在Excel中连接到工作表或表格的文章, 我看到一篇关于如何将单个单元格移走的文章,但那个单元格是一个表格的一部分。 我可以在SSIS中设置一个连接到单个单元格,命名或其他,并带回这个值? JK

SSIS中的重复值插入问题

我有一个与重复值的Excel文件..在SQL表中的字段是主键..我创build了一个ssis包导入从Excel中的数据。 如果有任何重复的值或任何损坏的数据,我把一个错误表来存储损坏或重复的数据。如果有任何错误数据,它redirect到错误表…我尝试与Excel没有任何重复的数据,它会将整个数据插入到目标表中,并将损坏的数据插入到错误表中。如果有任何重复数据,它会将一些数据插入到目标表中,将所有其他数据插入到错误表中,而不仅仅是重复的数据。移动到错误表的数据的数量是不可预知的。与.csv文件同名发生…这是什么原因? 如果有人知道请帮我纠正… 谢谢。

将Excel数据写入SQL Server数据库的脚本

我需要一些起点来完成以下任务: 某种脚本应该为传入的excel文件监视某个文件夹。 这些excel文件都有一个同名的工作表。 然后,该脚本应该在每个excel文件的一定范围内运行所有行,并将列数据写入正在运行的Microsoft SQL Server表。 现在我不知道我应该使用什么脚本语言来完成这个任务。 也许perl或windows的电源shell? 希望你能指点我正确的方向。 更新:我不应该也看看SSIS,因为这似乎提供了相当多的function? 谢谢。

使用SSIS在Excel中删除单个工作表

由于一些并发问题,我不得不使用多张工作表创build一个工作簿。 在执行结束时,一些工作表会有数据,有些不会。 我使用执行SQL任务创build工作表。 我试图通过工作簿循环,并删除不超过一个单行的表。 换句话说,如果行数不大于1,就删除表单。这个问题的任何指针都会被理解。 请让我知道你是否需要我的问题的更多细节。 先谢谢你。 编辑 以下是我从MSDN获得的脚本任务。 我把它修改到可以到达Excel表格并计算行数的位置,现在我只想当count = 1时删除表格。 有人可以帮我吗? using System; using System.Data; using Microsoft.SqlServer.Dts.Runtime; using System.Windows.Forms; using System.Data.OleDb; using System.IO; namespace ST_c346c80b4e6747688383c47a9f3e6f78.csproj { [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")] public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase { #region VSTA generated code enum ScriptResults { Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success, […]

在两列上进行内连接,它们的值不是100%相等

我有两个excel文件,一列有两列(ID1,名称),另一列有两列(ID2,名称),我需要导出一个文件三列(ID1,ID2,名称)。 问题是在每个文件中都有名字,而不是在另一个文件中,更大的问题是在两个文件中写同一个名字是有区别的,这两个文件是文件语言的常见区别,比如在阿拉伯语中的字符'أ'可以在没有Hamza'ا'(我的意思是我不能使用两个string之间的标准等同操作来指定一个文件中的名称与另一个文件中的另一个相同)下编写。 我的问题是有没有什么工具可以帮助,而不用为它编写代码,我听说过SQL集成服务,但我什么都不知道,请你指点我可以帮助解决任何参考我的问题。 任何链接,build议,或其他帮助将不胜感激。 提前谢谢了

脚本打开encryption的excel文件,它具有以“mmddyyyy”结尾的dynamic文件名

您好,我需要一个脚本为我的SSIS包,将打开我的encryptionexcel文件,它有一个dynamic的文件名以“mmddyyyy”结尾。 我有一个PowerShell脚本,将打开并重置密码使用文件名,但我不知道如何使用dynamic文件名。 此外,我想我会更喜欢一个VB脚本,将打开文件,并删除密码(或者可能没有,只要我可以提取数据,而它是开放的?),因为我可能将其设置为一个SQL作业提取并每天发送到SQL。 以下是精简代码的示例: objExcel = new-object -comobject excel.application $objExcel.Visible = $True $objExcel.DisplayAlerts = $False $MMDDYYYY=[DateTime]::Today.AddDays(-1).ToString("MMddyyyy") $objExcel.Workbooks.Open("\\files\Reporting\Census\Daily_$MMDDYYYY.xls",0,$False,‌​1,"password") $Workbook.Password = "" $strPath="\\\files\Reporting\Census\Daily_$MMDDYYYY.xls" $a.activeworkbook.SaveAs($strPath) $objExcel.Quit() $Workbook=$Null $objExcel=$Null [GC]::Collect() Powershell还显示“fullyqualifiederrorid”:InvokeMethodOnNull错误消息。

如何在ssis的目标表中插入列名?

!提及问题1 如图所示…我有一个Excel表格,其中包含32个表格一个接一个(我已经在图像中的2个表)可能会增加表计数…但所有表的元数据是相同的。表格有两列一个是常量(名称),另一个会得到更改(TPA,TPB等),但列位置没有变化。 现在问题是如何保存标题并作为T_type值插入到目标表中? 每个表中没有行是不固定的(所以我们不能去参考单元格)。

寻找将大型excel(xlsx)文件加载到SQL中的有效方法

我正在寻找备用数据导入解决scheme。 目前我的过程如下: 在Excel中打开一个大的xlsx文件 全部replace“|” (pipe道)与一个空间或另一个独特的性格 将文件保存为pipe道分隔的CSV 使用SQL Server Management Studio 2008 R2中的导入向导导入CSV文件 该过程起作用; 然而,步骤1-3需要很长时间,因为被加载的文件非常大(大约100万条logging)。 基于一些研究,我发现了一些潜在的解决scheme:a)批量导入 – 由于需要将文件转换为平面(或CSV)格式,所以这不幸并没有消除上述步骤1-3 b)OpenRowSet / OpenDataSource – 这个问题有两个问题。 首先,加载需要很长时间(一百万条logging大约需要2小时)。 其次,当我尝试一次加载多个文件(每个包含100万条logging的大约20个文件)时,我收到“内存不足”错误 我没有试过SSIS; 我听说它有大的xlsx文件的问题 所以这导致我的问题。 有没有解决scheme/替代选项,将导致大型Excel文件的导入更快? 真的很感谢帮助。

如何更改excel ssis包的导出excelpath

我有一个SSIS包来导出数据到excel文件。 我现在从我原来的文件夹中删除了Excel文件,并把它放在一个新的文件夹。 我看到包发送错误。 “包validation错误”。 我想知道是否有办法改变ssis包中的excel文件的目标path

从应用程序SSIS Excel连接工作失败从部署的服务

我有一个用C#编写的Windows服务,它调用一个用SSIS 2008R2编写的SSIS包。 该软件包连接到Excel电子表格。 它执行如下: Application app = new Application(); Package pkg = app.LoadPackage(ConfigurationManager.AppSettings["SsisPkgLoc"].ToString(), null); DTSExecResult pkgResults = pkg.Execute(); 当我安装这个服务和包运行,包失败 SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider is available. 但是,如果我从WPF窗体调用相同的代码,则按预期执行。 我知道从SSIS到Excel的64位和32位连接存在问题。 令我困惑的是,这两种方法都调用了相同的代码。 任何想法为什么作为Windows服务运行可能会尝试使用不同的驱动程序/失败?