更改使用文本文件的SSIS日志提供程序创建的文件的文件编码

问题描述 投票:2回答:1

我是SSIS的新手,我已经为文本文件设计了一个包并配置了SSIS Log提供程序。这很好,并且成功生成日志文件。

我们有一个监控团队,他们使用这个日志文件进行监控。由于文件编码是Unicode格式,因此无法读取日志文件。他们期望用于监控的非unicode格式。

我尝试将现有的日志文件编码更改为ANSI,但是当我重新运行该包时,我的日志文件已经使用UNICODE编码再次创建。

我们是否可以使用具有非unicode编码的文本文件的SSIS日志提供程序创建日志文件。请建议我任何解决方法。过去两天我无法找到解决方案。

sql-server logging encoding ssis flat-file
1个回答
1
投票

Trying to figure out the issue

由于文本文件的SSIS日志提供程序使用文件连接管理器进行日志记录,因此您无法选择在SSIS包中编辑文件编码,因为这种类型的连接管理器can be used for different files format (excel, text ...)

在搜索此问题时,看起来如果SSIS第一次创建日志,它将写入unicode数据。

Possible workaround

尝试使用记事本创建一个空文本文件,并使用ANSI编码保存。

enter image description here

然后从SSIS日志记录配置中选择此文件。

其他有用的链接


Update 1 - Experiments

为了测试我提供的解决方法,我运行了以下实验:

  1. 我添加了SSIS Logging并创建了一个新的日志文件

enter image description here

  1. 执行包后,文件以Unicode格式创建(要检查我是否使用记事本打开文件并单击Save As,组合框中显示的编码为Unicode
  2. 我使用记事本创建一个新文件,并使用Ansi编码保存它,如上所述。
  3. 在SSIS中,我将文件连接管理器更改为Use Existing而不是Create New,我选择了我创建的文件

enter image description here

  1. 执行包后,日志将填入文件中,编码仍为Ansi
  2. 我多次重复执行包,撤消不会改变。

TL DR:使用qsis包外部的ANSI编码创建一个文件,并在包中创建文件连接管理器,选择Use Existing选项并选择创建的文件。使用此文件连接管理器进行日志记录。

© www.soinside.com 2019 - 2024. All rights reserved.