【问题标题】:FIle Name Pickups in SSIS [duplicate]SSIS中的文件名称提取[重复]
【发布时间】:2014-01-27 20:55:24
【问题描述】:
@[User::FTP_FILE] + "Test_" 
+ RIGHT((DT_STR,4,1252)YEAR(DATEADD("DD",0, (GETDATE()))),4)  +
"-"+ RIGHT("0" + (DT_STR,2,1254)MONTH(DATEADD("DD",0,(GETDATE()))),2) +
"-"+  RIGHT("0" + (DT_STR,2,1254)DAY(DATEADD("DD",0,(GETDATE()))),2)+
 "_"+ RIGHT("0" + (DT_WSTR, 2) DATEPART( "hh", @[System::StartTime]),2)+ (DT_WSTR,1)
  "-      "+ RIGHT("0" + (DT_WSTR, 2) DATEPART( "mi", @[System::StartTime]),2)+ (DT_WSTR,1)"-"
+ RIGHT("0" + (DT_WSTR, 2) DATEPART( "ss", @[System::StartTime]),2) +
"_transactions_report.csv"

但问题是它不应该占用容器的启动时间...我在 1-41-00 到 1-45-00 EST 加载文件取决于用户向我发送文件.. 会是什么无论时间戳可能使用表达式,获取此文件的最佳方法是什么?

【问题讨论】:

  • 您能提供一些背景信息吗?我们有一堆代码,它应该做什么。它有什么作用?它是如何偏离理想状态的?
  • 为什么用 SSAS 标记?我在这里没有看到 Analysis Services 主题,只有 SSIS 平面文件导入。
  • 基本上它需要从时间戳根据文件加载而变化的服务器中提取 CSV 文件。由于时间戳每天都在变化,我需要在不考虑时间戳本身的情况下完成任务。上面的代码在作业运行时总是使用当前时间戳并且无法识别文件名。所以我正在寻找一些动态代码来获取文件而不考虑时间戳
  • 您是否考虑过使用 For Each File 迭代器,您可以在网上找到无数示例。
  • 这就是为什么我不努力回答这些...... OP就消失了......

标签: sql sql-server ssis sql-server-2012 ssas


【解决方案1】:

我认为您可以使用 Getdate() 代替 @[System::StartTime.您可以使用 Foreach Container 选择文件,您可以在其中通过分配文件夹名称来选择文件扩展名。

【讨论】:

  • 谢谢。我将有 15 个不同的 CSV 是每天加载的同一个文件夹,需要加载到 15 个不同的表中。因为我是 SSIS 的新手,所以我认为每个循环容器都会拾取文件夹中的所有文件。我这里可能错了
  • 最适合您的情况的方法如下:1)您可以根据表名创建一个动态的变量。 2)你可以做 ForEach 循环容器并在里面添加一个 DFT,它确实需要一个文件并转储到表和循环中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多