我是新的SSIS包,我正在尝试创建一个SSIS脚本任务,它创建一个空文件,文件名应该像“FileName__yyyymmdd __。csv”。 我正在尝试编译此代码但是编译时间很长,甚至没有显示任何错误,但是当我执行整个包时,包在脚本任务中失败。
以下代码用Main函数编写:
Dts.TaskResult = (int)ScriptResults.Success;
String FileLoc="D:\\Folder\\" ;
String BaseName="FileName__";
DateTime dt= DateTime.Now;
String yr= dt.Year.ToString();
String mm= dt.Month.ToString();
String dd= dt.Day.ToString();
String FileName = BaseName + yr + mm + dd + "__"+".csv";
File.Create(FileLoc+FileName).Dispose();
有人可以突出显示错误吗? 谢谢。
答案 0 :(得分:1)
文件名可以在1行中生成。
此外,您可以在脚本任务中设置断点,然后在选择包作为启动包后,在调试模式下执行包。
你做错了一些事情(或效率低下)。我已经纠正了你的代码。请尝试以下代码。它有效。
您需要在脚本using
文件之上添加以下.cs
语句。
using System;
using System.IO;
using System.Globalization;
在主函数中,根据需要使用以下代码。
string fileLocation = @"D:\Folder\" ;
string fileNamePrefix = "FileName__";
string filename = Path.Combine(fileLocation, fileNamePrefix
+ DateTime.Today.ToString("yyyyMMdd", CultureInfo.InvariantCulture)
+ "__.csv");
// This will print "D:\Folder\FileName__20160920__.csv".
Console.WriteLine(filename);
// if file does not exist, create it.
if (! File.Exists(filename))
{
using (StreamWriter sw = File.CreateText(filename))
{
// write data into file using sw.WriteLine(...) or something similar
}
}
Dts.TaskResult = (int)ScriptResults.Success;