Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 将标量值函数集成到SSIS包中_Function_Ssis_Scalar - Fatal编程技术网

Function 将标量值函数集成到SSIS包中

Function 将标量值函数集成到SSIS包中,function,ssis,scalar,Function,Ssis,Scalar,我创建了一个标量值函数来计算账龄,我想把它作为每月运行的SSIS包的一部分。我该怎么做呢?如果你的意思是你有一个t-sql函数,你想以某种方式在数据流中调用它,那么你实际上无法做到这一点。您可以选择以下选项: 将函数作为SSIS表达式编写,并在派生列中进行计算。如果函数很复杂,这可能不太理想 在脚本任务中编写函数并使用脚本转换。如果函数相对简单,但不容易重用,那么这种方法很有效 创建一个程序集,然后在脚本转换中引用该程序集。您还可以使用此基础代码在服务器上创建CLR函数。这使得管理代码更容易,但

我创建了一个标量值函数来计算账龄,我想把它作为每月运行的SSIS包的一部分。我该怎么做呢?

如果你的意思是你有一个t-sql函数,你想以某种方式在数据流中调用它,那么你实际上无法做到这一点。您可以选择以下选项:

  • 将函数作为SSIS表达式编写,并在派生列中进行计算。如果函数很复杂,这可能不太理想

  • 在脚本任务中编写函数并使用脚本转换。如果函数相对简单,但不容易重用,那么这种方法很有效

  • 创建一个程序集,然后在脚本转换中引用该程序集。您还可以使用此基础代码在服务器上创建CLR函数。这使得管理代码更容易,但需要更多的开销来实现

  • 将数据加载到数据库中的暂存表中,然后在尝试将数据合并到最终目标表时使用该函数。这种方法的好处是最容易实现。这种方法的缺点是,您必须将数据写入磁盘两次,因此,与使用任何其他解决方案相比,您肯定会获得更差的性能


  • 使用OLEDB命令转换,如下所示:


    根据需要修改。

    我猜这是MS sql数据库中的标量函数。 在select语句的数据流源的SQL命令中使用它

    Select dbo.myFunction(myParam)
    From myTable
    

    你需要提供更多的细节。您是希望创建一个将填充字段的SSIS组件,还是希望使用一个“派生列”组件来使用您的函数?这可以工作,但性能不好。这基本上是为每个单独的行调用数据库,这些行肯定不会扩展。我错过什么了吗?