Tag: ssis

导入xlsx文件到SQL Server的问题

我收到一个需要使用SSIS包导入SQL Server的每月XLSX文件。 不幸的是,发件人没有按照UNC命名文件名或工作表,而且我们最近迁移到SQL Server 2012时,即使在使用Excel连接pipe理器时也会导致软件包失败。 我们也试着给他们发一个模板,但他们拒绝遵守,我们也没有办法强迫他们这样做。 我一直在尝试更新包,这将使用脚本任务将每个两个Excel工作表导入到每个的System.Object ,然后我可以查询或循环,将数据导入到目标SQL服务器表。 到目前为止,使用来自Microsoft的示例,我已经成功地将Excel文件path/名称和两个工作表名称导入到对象variables中。 但是,这不会创build包含工作表中的实际数据集的对象。 根据这里和其他地方的例子,我已经启动了一个C#脚本,我相信这个脚本会把工作表数据输出到一个Objectvariables中,但是我不是很熟悉C#,并且没有一个完整的例子来debugging它,复制。 这是我的代码到目前为止: using System; using System.Data; using System.Data.OleDb; using Microsoft.SqlServer.Dts.Runtime; using System.Windows.Forms; [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase { public DataSet Main() { string fileName; string connectionString; fileName = Dts.Variables["ExcelFile"].Value.ToString(); Console.WriteLine(fileName); connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";Extended Properties=Excel 12.0 Xml"; […]

将.csv文件导入到SSIS

由于供应商最为人所知的原因,我被提供了ANSI和UTF格式的许多.CSV文件,这使我的平面文件加载过程变得混乱。 基本上,我不能依赖每次都是一样的格式,虽然结构是一致的。 所以我的问题是: 我的平面文件进程有问题(UTF和ANSI)是否意味着我没有正确设置平面文件连接? 我相信我已经确定了两种可能的解决scheme,但哪种解决scheme最好? 按types拆分(ANSI vs UTF),如果是这样的话? 将所有.csv文件转换为“excel”作为VB / C#脚本任务的一部分? 对于“excel”,请阅读其他常用格式。 谢谢你的帮助。

SSIS包不更新Excel上的修改date

我有一个SSIS包,查看在Excel中devise的模板(95 – 2003工作表) 将模板复制到新位置。 (文件系统任务)将使用OLE DB源复制的模板填充到Excel目标。 [ [ 所有的作品很好。 除了客户已经注意到,当收到新的Excel时,修改date是模板上次修改date。 我有三个其他类似的软件包,它们的修改date是软件包运行的时间。 我已经完成了通常的比较属性,但是看不到任何不同的东西。 我也重新创build了模板,以防万一。 没有运气.. 有任何想法吗? 从事: SQL Server 2014,Visual Studios 2015

如何在大于255的字段中处理ssis中的excel目的地?

所以我将数据从OLE DB Source导出到Excel Destination。 我有26列是3 varchar(4000)列这是痛点。 我正在使用数据转换将dt_str转换为dt_wstr,但它不适用于长度大于255.我读了几个解决方法,并尝试实施它们,但没有任何下面的工作 将数据types更改为文本(将dt_text转换为dt_ntext) – 错误 IMEX = 1 – 错误 Provider = Microsoft.ACE.OLEDB.12.0; Data Source = \ ABC \ XYZ.xlsx; Extended Properties =“EXCEL 12.0 XML; HDR = YES; MAXSCANROWS = 15“; – 错误 我想保留所有的数据,而不是截断。 请帮助我与任何其他尝试的解决scheme出口到出色的目的地。 谢谢!

SSIS如何使用不同的参数每次运行相同的存储过程

我有一个简单的SP有2个参数来执行。 输出将进入excel文件。 通过SSIS我想完成以下操作:用第一组参数运行SP并将输出放入Excel中。 使用不同的参数集运行相同的SP,并将输出放置在相同的Excel中,但在不同的选项卡中。 相同的过程12次将结果放入同一个Excel文件中的12个不​​同的选项卡。 我对SSIS相当陌生,我这样做的方式是将12个不同的执行sql任务输出到12个不同的excel文件中。 请如果有一个更有效的方式来实现这将是很大的帮助! 谢谢

SSIS导入 – Excel连接pipe理器在导入时打开文件

早上, 背景:我有一个非常简单的工作,使用ssis(VS 2013)将数据从3个xlsx文件导入到3个sql表中。 我在一个很大的公司networking上,所以我的调度function很渺茫。 我一直在使用一个Excel调度器3年,没有真正的问题可言。 调度程序使用batch file来启动并终止各种项目。 时间不重叠。 问题:这就是说,我一直有一个很奇怪的问题。 在上面提到的工作中,当打开VS并手动运行时(99%的时间)它运行良好。 当调度程序使用batch fileclosures作业时,当它到达ETL过程的这个部分时,它将打开所有的excel连接(实际的文件以读写提示打开)! 最后一句话:我看到它发生在Excel连接pipe理器存在的其他包上(15人中只有2人)。 它似乎打开连接的数据validation。 延迟validation设置没有任何区别(在这种情况下也不应该)。 有没有人见过这种行为? 我处于完全的失落之中,而且我的感觉正在消失! 🙂 先谢谢你, 科瑞

无法连接到Excel SSIS

我试图创build一个数据stream任务,从Excel文件到SQL表中的数据。 我在SQL Server数据工具中为Visual Studio 2012做了一个SSIS包。 但是,当我运行我收到下面的错误的任务: [Excel来源[52]]错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接pipe理器“Excel连接pipe理器”失败,错误代码0xC0209303。 在此之前可能会发布错误消息,更多关于为什么AcquireConnection方法调用失败的信息。 你能帮忙吗? 谢谢 完整的错误信息: SSIS包“C:\ Users \ adm.turpan \ Documents \ Visual Studio 2012 \ Projects \ Integration Services Project1 \ Integration Services Project1 \ project.dtsx”开始。 信息:以Excel中的0x4004300A作为源,SSIS.Pipeline:validation阶段开始。 错误:Excel中的0xC020801C作为源,Excel源[52]:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接pipe理器“Excel连接pipe理器”失败,错误代码0xC0209303。 在此之前可能会发布错误消息,更多关于为什么AcquireConnection方法调用失败的信息。 错误:Excel中的0xC0047017作为源,SSIS.Pipeline:Excel源validation失败,并返回错误代码0xC020801C。 错误:Excel中的0xC004700C作为源,SSIS.Pipeline:一个或多个组件未通过validation。 错误:Excel中的0xC0024107作为源:任务validation期间出现错误。 SSIS包“C:\ Users \ adm.turpan \ Documents \ Visual Studio 2012 \ Projects \ Integration […]

集成服务导入同一个Excel工作表的不同部分

我有一个.xlsx文件中的一组40张。 每个组织都有一个主要联系人,他们的信息处于垂直结构中。 这部分没有标题。 Organization: |Fillory | Main Contact Name: |Aiden Turner |Lead Instructor Main Contact Email: |Ludo@rocks.com Main Contact Phone: |508-555-2112 Mailing Address: |123 Baker Street |Brockton, MA 02301 其他相关人员在一张表中,但没有地址信息。 First Name |Last Name |Individual Email Address 我想连接到Excel文件,并获得前5列和3列,将第一列对另外两列进行转置,然后将其与第7行的标题开头处的下面的logging交叉应用。 我开始了一个MergeJoin的path,但是这让我陷入了一个完整的IsSorted事情,在我开始试图解决我做错的任何事情之前,我想我应该看看是否有人有更好的解决scheme。

需要帮助在SSIS中执行派生列拆分

所以在我的Excel表格中,我有一个名为real/min/max的列来计算人口数量,我想把它分成3栏,分别叫ActualPop , MinPop , MaxPop 。 所以就是一个例子 real/min/max 33/1/50 我需要这个填充新的列作为 ActualPop 33 MinPop 1 MaxPop 50 我尝试了以下expression式: ActualPop: TOKEN([real/min/max],"/",1) MinPop: TOKEN([real/min/max],"/",2) MaxPop: TOKEN([real/min/max],"/",3) 问题是当我试图做我的映射到SQL目标,我得到一个关于数据types的错误。 目的地有INT数据types的意思,而在派生列编辑器我看到的数据types是Unicodestring。 我试图使用数据转换,但仍然无法正常工作。

SQL Server导出到Excel 2010更大的255个字符

我试图将一个SQL服务器表导出到一个Excel .xlsx文件,但是当更大的255个字符行时,我得到一个错误: 错误0xc0202009:数据stream任务1:SSIS错误代码DTS_E_OLEDBERROR 。 发生OLE DB错误。 错误代码:0x00040EDA。 OLE DBlogging可用。 来源:“Microsoft Office Access数据库引擎” Hresult:0x80040E21 说明:“字段太小,无法接受您尝试添加的数据量,请尝试插入或粘贴更less的数据。” 你能分享一下解决这个问题的build议吗?