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

时间:2019-03-30 06:09:01

标签: c# sql-server ssis flat-file script-component

我有.dat文件。我需要对此文件进行一些编码,并且需要保存到.txt文件中,而我正在使用SSIS中的脚本组件。

我已经使用SSIS脚本组件来实现这一目的。

//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文件。

1 个答案:

答案 0 :(得分: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;
  }