我有.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文件。
您可以使用平面文件连接管理器读取.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;
}