问题标签 [ssis-2019]

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-2019 - 在SSIS中将逗号分隔的字符串列拆分为几行?

我想根据第一个表的输入在第二个表中实现输出。我想通过 SSIS 包做到这一点。

在此处输入图像描述

0 投票
3 回答
495 浏览

sql-server - 使用 SSIS 创建文件和文件夹到网络驱动器

我创建了 SSIS 包,它在输出位置使用文件系统任务创建新文件夹,然后使用数据流任务在该文件夹中创建数据文件。

我创建了一个映射到 azure blob 的网络驱动器。因此,我将网络驱动器路径(如 Z:\)传递给包,并按预期创建文件夹和文件,这也反映在 azure blob 上。

现在,当我通过 SQL 代理作业安排此包时,我收到错误,即无法从文件系统任务中找到路径 Z:\folderName 的一部分。所以我认为这是因为 sql server 代理服务没有通过我的用户 id 运行。所以我用我的凭据启动了 sql server agent,但它仍然给我同样的错误。

注意:我的 ID 不能直接访问 azure blob,网络驱动器只能由我的 ID 访问。

我们目前正在使用 azure blob 进行开发,但我们可能会使用单独的服务器来存储文件,因此我无法使用 SSIS azure service pack 中提供的灵活文件系统任务

0 投票
0 回答
158 浏览

sql - 获取错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005

我正在创建一个新的 SSIS 包,大约 25 个数据流。从 Oracle 数据库到 SQL Server。它总是失败。每个容器大约有 8 个数据流。 在此处输入图像描述

当我运行它时,对于不同的数据流,我总是会遇到相同的错误。
在此处输入图像描述

这些是错误:

当管道引擎调用PrimeOutput(). 失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。关于这里有什么问题的任何想法?

0 投票
0 回答
31 浏览

sql-server - 如何在 SSIS 表达式中编写 NULL

要求:全名 = 如果类型为“Y”则名称为 NULL

我试过表达

该字段作为字符串作为 NULL 出现,但需要作为 IS NULL

任何帮助深表感谢。提前致谢

0 投票
0 回答
30 浏览

windows-10 - 如何将 SQL Server Integration Services 包部署到远程服务器?

如何将 SQL Server Integration Services - SSIS (2019) 包部署到远程服务器?换句话说,如何在远程服务器上使用 Windows Authentication for SQL Server 2019?

0 投票
0 回答
14 浏览

ssis-2019 - ForEach 循环容器 - 使用 *.xls 通配符时无法识别 .xlsx 文件扩展名

我遇到了一个问题,即用于从不同文件夹中挑选文件的简单 ForEach 循环容器无法正常工作,因为它无法识别 .xlsx 文件,除非 FileSpec 设置为该特定文件扩展名,但它似乎在本地环境(VS 2008)上使用“* .xls”通配符可以正常工作。.xlsx 并不总是正在使用的文件扩展名。

我在 Azure VM 上使用 VS Community 2019。以防万一,这有什么不同...

ForEachLoop

0 投票
0 回答
50 浏览

sql-server - SQL Server 升级 SSIS 作业

我目前使用的是旧版本的 SQL Server,我计划将其升级到最新版本 2019。

我有几个关于迁移过程的问题。

  1. 我是否必须从 Visual Studio 将所有 Integration Services 包一一升级到 targetServerVersion = SQL Server 2019?还是可以将其保留为当前的 targetServerVersion 并且它可以在 SQL Server 2019 中正常运行?

  2. 我尝试将 TargetServerVersion 更改为 2019,但出现 DTSRunTime 错误,似乎该包在 Microsoft.SqlSever.DTSRuntimeWrap 版本 15.0.0.0 上运行不佳。

0 投票
1 回答
534 浏览

ssis - 该组中没有可用的控件。将项目拖到此文本上以将其添加到工具箱

我曾经遇到过这种情况,这不是视觉工作室的问题。

我在“工具箱”中看到了这条消息,但是当我们在 SSIS 中工作时,我们需要“SSIS 工具箱”

打开 SSIS 工具箱

  1. 我们可以打开任何 dtsx 文件并单击右上角的 SSIS 工具箱按钮,请参阅下图。

  1. 我们可以右键单击 dtsx 文件的空白区域,然后从列表中单击 SSIS Toolbox 选项,如下所示。

希望它适用于我们所有人。

0 投票
1 回答
112 浏览

ssis - 如何使用 SSIS 变量值或项目参数值作为表达式主体,然后将其评估为另一个变量

我有一个 SSIS 项目(Visual Studio 2019 - 项目部署模型),其中包含 100 个 SSIS 包。

每个包的名称结构是TableName _Table.dtsx (例如: 如果我的表名是Employees,那么包名就是:Employees_Table.dtsx)。

每个 SSIS 包都有 2 个变量

具有硬编码的值,

以及使用上述变量值创建查询的变量(表达式评估)

我的问题如下: 最近我们对我们使用的 SSIS 日志记录机制进行了一些更改,所以我不得不去每个 100 个 SSIS 包的 SSIS 包并修改@[User::Logging_sql_statement]变量处的表达式。

因此,为了避免将来发生新更改时必须修改 100 SSIS,我想知道是否有一种方法可以将表达式主体保存到项目参数中,然后将其值作为表达式评估为@[User::Logging_sql_statement]每个 SSIS 包中的变量。

在上述情况下,我以后只需要修改参数的值。

所以我创建了一个项目参数并将其值硬编码如下:

然后我去了 SSIS Packages 并在表达式生成器中执行了以下操作:

但我没有得到值的表达式评估,而是@[$Project::Parameter]只得到它的值。

例如:

在名称为Employees_Table.dtsx 和变量(带有硬编码值)的 SSIS 包中

我想要以下

给出以下值作为结果:

而不是上面的,我得到

有没有办法做到这一点?

0 投票
1 回答
32 浏览

tsql - 循环遍历表,同时记录不断添加到表中

我有一个FilesToCopy包含文件名列表的表 ( )。

ID 文件名
1 c:\temp\file1.txt
2 c:\temp\file2.txt
3 c:\temp\file2.txt

文件一个接一个地被复制到另一个位置(例如c:\test)。我可以很容易地遍历这个表来为每个文件执行一个复制命令。这只是一个读取表的执行 SQL 任务,将结果放入对象变量中,然后是 For Each 容器。

但是,如果在 for each 循环的执行过程中,记录被添加到表中FilesToCopy呢?

想象一下,在 for each 循环中,文件 c:\temp\file99.txt 被添加到表中FilesToCopy

ID 文件名
1 c:\temp\file1.txt
2 c:\temp\file2.txt
3 c:\temp\file2.txt
99 c:\temp\file99.txt

我能否以某种方式告诉 for each 循环它还必须复制文件 c:\temp\file99.txt,即使该文件在循环开始时不存在?

所以效果会是:

  1. 读取表FilesToCopy,开始循环。
  2. c:\temp\file1.txt被复制到c:\test
  3. c:\temp\file1.txt从表中删除记录 FilesToCopy
  4. c:\temp\file2.txt被复制到c:\test
  5. c:\temp\file2.txt从表中删除记录 FilesToCopy
  6. 同时c:\temp\file99.txt被添加到表中FilesToCopy
  7. c:\temp\file3.txt被复制到c:\test
  8. c:\temp\file3.txt从表中删除记录 FilesToCopy
  9. c:\temp\file99.txt被复制到c:\test
  10. c:\temp\file99.txt从表中删除记录 FilesToCopy
  11. 当表中没有更多记录时循环结束FilesToCopy

所以我想做的是以某种方式刷新在循环开始时馈送到循环的列表。

我希望这很清楚。