【发布时间】:2017-08-09 00:05:17
【问题描述】:
我正在尝试通过在 SQL 任务中使用 swicth case SQL 语句将 SSIS 中的执行参数绑定到变量:
SELECT @[User::StartTime]=
CASE @[$Project::CmdParam]
WHEN 'Full' THEN '20000101000100'
WHEN 'Day-1' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -1, GETDATE() ), 112),0,12)+''+'235000')
WHEN 'Day-2' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -2, GETDATE() ), 112),0,12)+''+'235000')
WHEN 'Day-3' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -3, GETDATE() ), 112),0,12)+''+'235000')
ELSE @[$Project::CmdParam]+'235000'
END;
我能够在 SSMS 中运行查询,但它在我的包中失败。 它无法解析查询。
【问题讨论】:
-
如果您使用的是 SQL 任务,则参数的占位符由驱动程序决定。您使用的是 OLE DB 还是 ADO.Net?
-
请忽略我(现已删除)的评论。解决此问题的唯一方法是删除您的大部分代码并获得一个非常基本的示例并按您的方式工作。另外,请确认您的连接是 OLEDB 还是 ADO.Net
标签: variables ssis parameter-passing