sql-server - 更改使用文本文件的 SSIS 日志提供程序创建的文件的文件编码
问题描述
我是 SSIS 新手,我已经为文本文件设计了一个包并配置了 SSIS 日志提供程序。这工作正常,日志文件成功生成。
我们有一个监控团队,他们使用这个日志文件进行监控。他们无法读取日志文件,因为文件编码是 Unicode 格式。他们期望使用非 unicode 格式进行监控。
我试图将现有的日志文件编码更改为 ANSI,但是当我重新运行包时,我的日志文件已使用 UNICODE 编码再次创建。
有什么方法可以使用 SSIS 日志提供程序为非 unicode 编码的文本文件创建日志文件。请建议我任何解决方法。过去两天我无法找到解决方案。
解决方案
试图找出问题所在
由于文本文件的 SSIS 日志提供程序使用文件连接管理器进行日志记录,因此您无法选择在 SSIS 包中编辑文件编码,因为这种类型的连接管理器可用于不同的文件格式(excel、text . ..) .
在搜索此问题时,看起来如果 SSIS 首次创建日志,它将写入 unicode 数据。
可能的解决方法
尝试使用记事本创建一个空文本文件并使用 ANSI 编码保存。
然后从 SSIS 日志记录配置中选择此文件。
其他有用的链接
更新 1 - 实验
为了测试我提供的解决方法,我运行了以下实验:
- 我添加了 SSIS Logging 并创建了一个新的日志文件
- 执行包后,文件以 Unicode 创建(检查我是否使用记事本打开文件并单击
Save As
组合框中显示的编码是Unicode
) - 我使用记事本创建一个新文件并使用
Ansi
上述编码保存它。 - 在 SSIS 中,我将文件连接管理器更改为,
Use Existing
而不是Create New
我选择了我创建的文件
- 执行包后,日志填充在文件中,并且编码仍然
Ansi
- 我多次重复执行包并且撤消不会改变。
TL DR:在 ssis 包外 创建一个带有ANSI
编码的文件,并在包内创建一个文件连接管理器,选择Use Existing
选项并选择创建的文件。将此文件连接管理器用于记录目的。
推荐阅读
- r - 如何使用 dplyr 在 R 中按月对数据进行分组
- header - 504 错误 AWS 服务器网关超时后使用 mod_wsgi 为 redhat 中的 django 应用程序配置 apache(httpd)
- r - 创建具有共享 ID 的新列以随机链接 R 中的两行
- reactjs - 由于 React.StrictMode 导致问题,React 组件被调用两次
- amazon-web-services - 由 DynamoDB 标准属性名称和值格式中的多个值组成的分区键?
- python - 如何计算与每个点关联的边的长度?
- c# - 在 Animator 中使用 Unity 事件切换网格渲染器
- flutter - 例外:-尽管删除了扩展的小部件,但没有布置 RenderBox
- ios - 如何将 GoogleSignIn 身份验证连接到用户个人资料?
- terminal - 在特定频道中启动 Discord 应用程序 (Linux)