计算表中的记录并将数据写入 SSIS 中的文本文件

Posted

技术标签:

【中文标题】计算表中的记录并将数据写入 SSIS 中的文本文件【英文标题】:Counting records from a table and writing the data into a text file in SSIS 【发布时间】:2019-11-02 18:23:01 【问题描述】:
COMPANY_CODE    POLICY_NUMBER   AGENT   PLAN_CODE   AGENT_RANKING   SPLIT   STATUS
01                  001          100    ADV GOLD    1.0.0.0.0.0      0.3    BUYOUT
01                  001          101    ADV GOLD    1.1.0.0.0.0      0.5    LTCGPAY
01                  001          102    ADV GOLD    1.2.0.0.0.0      0.2    HPAY

这是一个名为 table2 的表。

我使用过这些查询:

select  'Pol_Number' as POL
union all 
select POLICY_NUMBER from day2

我的目标是将这些数据写入 .txt 文件,如果任何条件不匹配,它将创建一个大小为 0 kb 的 .txt 文件

【问题讨论】:

您可以通过创建一个简单的 SSIS 包来执行此操作,在该包中您使用 OLE DB 源从您提到的 SQL 命令中读取数据,并使用平面文件目标将数据导出到平面文件(如果没有行)导出时会默认创建一个空文件。 从上面的SQL命令中,当没有数据时,空文件没有被创建,因为它的标题为'Pol'。我想要一个解决方案,如果表中有数据它将创建一个有标题和数据的文件,如果没有数据,它将创建一个没有任何标题的空白文件 【参考方案1】:

尝试使用以下 SQL 命令作为源

select POLICY_NUMBER from day2

另一方面,在目标使用的平面文件连接管理器中,转到高级选项卡并仅定义一个名为 Pol_Number 的列。

更多信息可以参考以下官方文档:

Flat File Connection Manager Editor (Advanced Page)

【讨论】:

【参考方案2】:

它得到了解决。我所做的是首先我通过 DFT 执行查询并存储 变量中的行计数(行计数)。然后,从该 DFT 中,我将条件置于优先约束中(如果 Row Count==1,它将执行 DFT2,否则如果 Rowcount>1,它将执行 DFT 3)。

【讨论】:

以上是关于计算表中的记录并将数据写入 SSIS 中的文本文件的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 无法获取列值并将其设置为 NULL

Python:计算txt文件目录中的单词并将单词计数写入单独的txt文件

插入多个文本文件

SSIS 包动态连接中的异常处理

使用ssis导入文本文件时如何插入主键

如何在 SSIS 包中使用变量和 SQL 代码?