问题标签 [ssis-connection-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

ssis - 导入 Excel 文件的 SSIS 2019 包如果不在预期的文件夹中,则会创建一个空文件

我有一个 SSIS 2019 包,它会在将文件放入文件夹后立即导入 Excel,然后将 Excel 文件移动到另一个文件夹(代理将每 30 分钟运行一次)。一开始我有一个脚本任务,它测试文件是否在预期的文件夹中,如果为真,则控制流转到数据流任务,如果不是,则它无处可去(过程在那里结束)。在测试包时,只要在我打开包或对包执行任何操作时文件位于预期的文件夹中,它就可以正常工作。在我第二次运行包的测试中,在文件被移动后,控制流不会通过脚本任务,但我从数据流中得到一个错误,因为在文件夹中有一个新的空文件与预期文件名但不正确的工作表已自动创建。我不知道是什么任务导致了这种情况,或者 excel 文件连接管理器是否在执行包时执行了此操作。如果文件不在文件夹中,它甚至会在我打开包时立即执行此操作。我该如何阻止这个?我根本不希望它创建一个空的 excel 文件。如果该文件不在指定的文件夹中,我希望它什么也不做。

这是一个完整的事件序列:

  1. 脚本任务检查文件是否在文件夹中 - 否:不执行任何操作
  2. 是 - 执行 SQL 任务删除目标表一中的记录
  3. 然后进入数据流 a.Excel 数据源进入数据转换任务 b.然后数据进入 OLE DB 源(目标表一)
  4. 存在数据流 - 出错时发送电子邮件
  5. 然后执行 - On Error 发送电子邮件的 SQL 任务 删除目标表二中的记录 b. 将记录插入到没有空部件号的目标表二中 c.将记录插入到日志历史表中
  6. 然后执行文件系统任务,将 Excel 文件从 IMBOX 文件夹移动到 OUTBOX 文件夹 – 出错时发送电子邮件 – 成功时发送电子邮件
0 投票
0 回答
41 浏览

sql-server - SSIS 读取没有列名的文件

好吧,所以我不知道该怎么做,我的文件将以这样的格式出现,我需要读入 SQL Server 数据库:在此处输入图像描述

如您所见,它是用“~”分隔的,并且根本不包含列名。我每隔几个小时就会收到多个这样的文件,并且除了我实际需要读取数据的部分之外,我已经准备好整个 SSIS,因为我对如何处理其他部门提出的这种分隔符格式感到困惑。如您所见,如果我将列分隔符指定为“~”,它可以正常工作在此处输入图像描述

直到它到达行结束的那一点,在该点开始有这个不必要的“〜”行,它使连接管理器混淆,认为这些是单独的列,创建一堆空列在此处输入图像描述

我不能简单地删除所有空列,因为某些合法的列有时可能是空的。到目前为止,我发现的唯一平庸的解决方案是转到文件连接管理器中的高级选项并手动删除所有我不需要的列。但这根本不起作用的原因是因为我将获得的下一个文件可能包含比这个更多的行,并且它仍然会认为每个数据行之后的“~”是一个列分隔符,而实际上它只是一个行分隔符。但是,每个文件中的列数将始终保持不变。

0 投票
1 回答
60 浏览

sql-server - 将参数和连接管理器从一个 SSIS 包复制到另一个

我有一个 SSIS 包,其中包含一些使用环境变量参数化的参数和连接管理器在此处输入图像描述 在此处输入图像描述

我需要做的是使用该 ssis 包,更改名称和其他一些内容并将其部署为不同的包。部署新包后,我想生成一个脚本,允许我从旧包中复制所有参数化。

我能够创建此代码:

但是,当我尝试执行生成的脚本时,它会收到以下消息:

找不到参数“MSDBConnection.ConnectionString”,因为它不存在。

我做错了什么?

0 投票
0 回答
33 浏览

ssis - SSIS 自定义连接管理器和 SQL Server 2019:“值不在预期范围内。”

我正在尝试制作自定义 SSIS 连接管理器并使其与我的包一起使用。

首先,我遵循了官方的 Microsoft 文档:

然后安装它:

如果我的 SSIS 包配置为“TargetServerVersion”:“SQL Server 2016”,则自定义连接管理器工作正常,但是当我将其设置为“SQL Server 2019”时,它根本不起作用并抛出此错误:

反序列化包“值不在预期范围内”的异常。(Microsoft.DataTransformationServices.VsIntegration)

截屏

在我的测试中,我使用了一个只包含连接的空包。

另一个发现,如果自定义连接管理器直接在包中(而不是在项目中),包运行但连接就像被忽略了。如果我把它放在项目中,我在执行包时会直接出错。

有没有人遇到过这个错误?