sql-server-2005 - SSIS:将 OLE DB 源代码编辑器中的参数传递给表值函数

标签 sql-server-2005 ssis

如何在 OLE DB 源中传递参数来调用表值函数,例如:

select * from [dbo].[udf_test](?, ?)

这样做时,出现错误:

无法从 SQL 命令中提取参数。提供程序可能无法帮助解析命令中的参数信息。在那种情况下,使用“SQL 命令形式变量”访问模式,在这种模式下,整个 SQL 命令都存储在一个变量中。 语法错误、权限冲突或其他非特定错误 (Microsoft SQL Native Client)

除了“来自变量的 SQL 命令”之外,还有其他解决方案吗?

斯文

最佳答案

您可以使用变量中的 SQL 命令,它相对简单。您可以构建 SQL 语句以使用脚本转换传递给源,以编辑保存 SQL 的变量。因此,例如,您将设置一个名为 strSQL 的变量并将值设为

select * from [dbo].[udf_test](?1, ?2)

然后在脚本组件中,将 ?1 和 ?2 值替换为您要使用字符串操作方法传递的参数。

它在包中需要做更多的工作,但根据我的经验,效果很好。

关于sql-server-2005 - SSIS:将 OLE DB 源代码编辑器中的参数传递给表值函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2643921/

相关文章:

sql - 如何部分存储日期值?

sql-server-2008 - 将字符串与 SmallDateTime 进行比较用于工作

sql - Foreach 循环文件名

sql-server - SSIS 运行时存储过程失败

sql - 将 SQL Server 数据库转换为 MYSQL 数据库

sql - 使用 group by 检索主键上的聚合行

sql-server-2005 - 为一个 SQL 参数传递多个值

c# - 从 SSIS 2012 脚本组件中的 PipelineBuffer 获取列名称

sql-server - 在 Amazon RDS 上跨 SQL Server 2012 实例复制非常大的表时出现持续超时问题

visual-studio-2015 - 新创建的 SSIS 包未显示在解决方案资源管理器中,能够在包位置看到 .dtsx 文件