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

时间:2019-03-07 09:35:01

标签: sql-server logging encoding ssis flat-file

我是SSIS的新手,我已经设计了一个程序包,并为文本文件配置了SSIS日志提供程序。 这样可以正常工作,并且日志文件已成功生成。

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

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

我们可以使用SSIS日志提供程序为非Unicode编码的文本文件创建日志文件的任何方式。请给我任何解决方法。过去两天我找不到解决方法。

1 个答案:

答案 0 :(得分:1)

试图找出问题所在

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

在搜索此问题时,如果日志是由SSIS首次创建的,则它将写入unicode数据。

可能的解决方法

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

enter image description here

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

其他有用的链接


更新1-实验

要测试我提供的解决方法,我已经进行了以下实验:

  1. 我添加并创建了SSIS日志记录以及一个新的日志文件

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: 在sis软件包外部创建具有ANSI编码的文件,并在软件包内部创建文件连接管理器,选择Use Existing选项,然后选择创建的文件。将此文件连接管理器用于记录目的。