复制动态生成的文件名并将其粘贴到其他文件夹中

时间:2017-11-21 01:08:30

标签: tsql ssis

我担心我需要执行的任务之一是创建CSV文件,其名称在运行时生成,然后复制相同的文件并将其粘贴到其他文件夹。我能够创建所需的文件。 以下是我迄今为止所做的事情:

  1. 在SSIS中,我在控制流程中采用DFT并将视图作为我的 OLEDB源,然后将其指向平面文件目标和 在我想要的位置创建一个文件,说一个变量中的文件夹x 即我创建的变量的 My_dest_folder 。以下是我遵循的步骤。

  2. 字符串类型的
  3. My_dest_folder ,并将我的文件夹路径作为值。

  4. sting类型的
  5. 文件名,并给出了一个名称cv99351_作为值。

  6. 字符串类型的时间戳,并提供生成时间戳YYYYMMDDHHMISS格式的表达式。

  7. sting类型的
  8. Archivefolder ,并提供了另一条路径,其中生成的文件应该从 My_dest_folder & 粘贴进去     存档文件夹。
  9. 在我的平面文件连接管理器的连接字符串中,我已经给出了变量 @ My_dest_folder + @文件名+ @时间戳+"的.csv&#34 ;.这会创建一个文件
    名称为cs99351_.csv的文件夹为x。
  10. 创建文件后,我尝试从 My_dest_folder 中捕获文件名,但由于时间戳也包含秒数,因此我无法每次都捕获它。 有人可以帮帮我吗?我真的很感激。

1 个答案:

答案 0 :(得分:0)

如果有人想用SSIS保存他的文件,你的描述已经很好了,可以用作教程:)

但是,如果我理解你在过程结束时遇到问题,那么当你试图获取文件名时。 要阅读它,您使用相同的变量连接,但有时您的时间戳可能会更改,然后您会收到错误(您的文件不存在)

如果是,我猜你在变量的表达式中使用了一种GETDATE()函数。看来SSIS会在您每次请求时评估变量的值。

我测试了它: 我跑3插入语句并在每个之间等待调试器。 enter image description here

它给了我3个不同的值:

enter image description here

我建议你不要在变量表达式中使用你的getdate()函数。 您可以使用唯一的SQL任务(使用SELECT GETDATE()SQL查询)或使用C#/ VB方法检索它。

它能解决你的问题吗?

此致

阿诺