【发布时间】:2018-01-11 13:55:17
【问题描述】:
我的 SSIS 包创建一个 csv,其文件名包含日期时间戳。我想通过电子邮件发送此文件。所以我有一个包含通配符的变量来表示我的文件。我已将文件附件的发送电子邮件任务表达式设置为我的 2 个变量
@filelocation + @filename
@filelocation = C:\User\project\
@filename = final_ * _ *.csv
所以它正在寻找C:\User\project\final_*_*.csv
文件存在,但出现以下错误
发送邮件任务 [发送邮件任务] 出错:文件“C:\User\project\final__.csv”不存在,或者您没有访问该文件的权限.
发送邮件任务时出错:任务验证期间出现错误。
我已延迟验证,但仍然无法使用任何建议将不胜感激。 该文件存在,我正在以管理员身份运行
【问题讨论】:
-
C:\User\project\final__.csv 文件的文件名格式无效
-
* 是文件命名中的通配符,Windows 不允许。使用其他字符,例如 # 或其他内容
-
为什么? @filename 变量使用 * 作为通配符,因此它正在寻找一个文件名“Final_WILDCARD_WILDCARD.csv。我在整个包中都使用了这个变量并且使用通配符没有问题
-
发送邮件任务需要您的表达式来生成附件的确切路径和文件名。
-
但是因为我不知道文件附件的确切名称,因为它包含时间戳,这是否意味着我不能使用通配符变量作为文件名?
标签: sql-server validation ssis etl sendmail