使用ssis编码后将.dat文件写入.txt文件

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

我有.dat FIle。我需要对此文件进行一些编码,需要将其保存到.txt文件中,我在SSIS中使用脚本组件。

我使用SSIS Script组件来实现它。

//have declared 2 read write variable FIleLoc and FileWrite
string fileIn = Variables.FileLoc;
string fileOut = Variables.FileWrite;
var x = System.IO.File.ReadAllText(fileIn);
byte[] encodedBytes = System.Text.Encoding.UTF8.GetBytes(x);
byte[] unicodeBytes=
Encoding.Convert(Encoding.UTF8,Encoding.Unicode,encodedBytes);
System.IO.File.WriteAllBytes(fileOut, unicodeBytes);
Output0Buffer.Col = Variables.FileWrite;

当我尝试调试代码时,它的显示包成功执行,并且不生成.txt文件。

c# sql-server ssis flat-file script-component
1个回答
1
投票

您可以使用平面文件连接管理器读取.dat文件,并从代码页下拉列表中选择UTF-8编码,如下图所示。然后,您可以简单地使用包含平面文件源(.dat)和平面文件目标(.txt)的数据流任务(每个必须具有单独的连接管理器),而不是编写脚本来将.dat文件转换为.txt

enter image description here

如果您需要使用脚本任务,那么我建议从平面文件连接管理器中读取文件路径,类似于:

public void Main()
  {
      ConnectionManager conn = Dts.Connections["file.dat"];
      var path = conn.ConnectionString;
      //your encoding code 
      // if you want to access package variables use Dts.Variables["User::NeededVar"].Value;
      Dts.TaskResult = ScriptResults.Success;
  }
© www.soinside.com 2019 - 2024. All rights reserved.