【问题标题】:Storing the return value from a function in a SSIS package variable将函数的返回值存储在 SSIS 包变量中
【发布时间】:2016-10-26 18:23:01
【问题描述】:

我想对 select function_name() 使用执行 SQL 步骤,该步骤返回数据类型为 decimal(16,4) 的值并将其存储在 SSIS 变量中,然后使用该变量并将其作为参数传递给后续步骤中的 SP .但是,当我这样做并执行这些步骤时,输出始终为 0,我猜我设置变量的方式不好或者我没有正确传递它,有人可以帮忙!!!

【问题讨论】:

  • 你的代码在哪里??!!请编辑您的问题并添加 Sql 代码。 :|

标签: sql-server tsql variables ssis


【解决方案1】:

您想使用 SSIS 执行 SQL 任务并特别注意参数映射和结果集选项卡。请阅读本文以了解如何正确映射输入和输出:

https://msdn.microsoft.com/en-us/library/cc280502.aspx#Return_codes

它需要一些时间(通常超过一分钟,不到一小时)才能使其工作。

https://www.simple-talk.com/sql/ssis/ssis-basics-using-the-execute-sql-task-to-generate-result-sets/

【讨论】:

    【解决方案2】:

    您可以像这样在 TSQL 中执行此操作...

    DECALRE @fnResult DECIMAL(16,4)
    
    SET @fnResult = dbo.UFn_getSaleDollar()
    
    EXEC someProcedure @procVariable = @fnResult
    

    【讨论】:

    • 我可以,但是函数和 SP 位于完全不同的服务器上,所以我需要分两步进行 - 将结果加载到变量中,然后将该变量用于我的下一步
    • 为什么不使用链接服务器直接调用呢?您是仅在此步骤中使用 SSIS,还是在做很多事情的较大程序包中的一个步骤?如果不是后者,那么你就不需要 SSIS。
    • 另外,我对变量的数据类型有问题,我在 ssis 包变量数据类型下看不到小数点,知道吗??
    • 这只是更大的包装中的一步
    • 我不能在该服务器上使用喜欢的服务器,这违反了我们的政策
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    相关资源
    最近更新 更多