【问题标题】:SQL to flat-file exportSQL 到平面文件导出
【发布时间】:2017-12-22 07:03:25
【问题描述】:

我正在编写一份报告,其中我在 SQL 中进行了查询,并且查询结果将被导出到一个平面文件中。

-- 这是一项日常工作,每天都会将结果导出到一个新的平面文件中

(Name of the flat file & date : NAME_OF_THE_FLATFILE_7.17.2017.txt).

-- 该平面文件有一个包含 9 行的标题模板。其中少数是静态的,其余的是动态的。标题动态行包括日期、查询结果行数、平面文件名称等...

我的问题:

  1. 有没有办法将数据从 SQL 导出到具有上述指定名称的平面文件? (我们不应该使用存储过程。我知道我们有一个使用SSIS将查询结果从SQL导出到平面文件的过程,但是是否可以每天以指定的名称格式导出查询结果?)

  2. 如何查询标题模板并将其导出到平面文件?

我期望的文本文件的输出是

Header          Execution Date  20170717

Header          Text file name  NAME_OF_THE_FLATFILE_07.17.2017

Header          Count of rows   5

Header          Dynamic row

Header          Dynamic row

Header          Dynamic row

Header          Dynamic row

Header          Dynamic row

Header          Dynamic row

Client      Loan Number

123     4567890123

234     5678901234

345     6789012345

456     7890123456

567     8901234567

【问题讨论】:

  • 我会使用 C# 来执行此操作。将结果加载到数据表中,然后通过 csv 生成函数运行数据表。
  • 动态标头通常不是一个很好的过程,因为它们难以使用。
  • 我不确定是否有办法在不使用其他工具的情况下执行此操作 (sqlservercentral.com/articles/Export/147145。如果您需要通过电子邮件发送 TSQL 查询的结果,我使用 dbo.sp_send_dbmail。我有一个在 Excel 中执行此操作的报告,但您当然可以将其更改为文本文件。

标签: sql ssis automation header flat-file


【解决方案1】:

动态命名文件很容易,您只需在目标连接中使用表达式。

但是要创建您想要的布局,您需要使用创建文件、将其作为文件流打开并逐行写入文件的脚本任务来执行此操作。

【讨论】:

  • 感谢您的回答。我能够弄清楚目标连接中的表达式。您能帮我了解如何查询标题模板并使用脚本任务将其导出到平面文件吗?
猜你喜欢
  • 2013-08-04
  • 2018-02-26
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多