我有.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文件。
答案 0 :(得分:1)
您可以使用平面文件连接管理器读取.dat
文件,然后从“代码”页面下拉列表中选择UTF-8编码,如下图所示。然后,无需编写将.dat
文件转换为.txt
的脚本,您只需使用一个数据流任务即可,其中包含一个平面文件源(.dat)和一个平面文件目标(.txt) (每个人必须拥有单独的连接管理器)。
如果您需要使用脚本任务,那么我建议从平面文件连接管理器中读取文件路径,类似于:
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;
}