Ssis 查询时出现数据流给定错误
我有一个SSIS包,里面有一个数据流,可以从一个数据库复制到另一个数据库 最初它是从SQL2012到SQL2012的副本。这没问题。现在我的需求发生了变化,需要从SQL2008 R2复制到SQL2012。查询现在生成以下错误:Ssis 查询时出现数据流给定错误,ssis,sql-server-2008-r2,sql-server-2012,Ssis,Sql Server 2008 R2,Sql Server 2012,我有一个SSIS包,里面有一个数据流,可以从一个数据库复制到另一个数据库 最初它是从SQL2012到SQL2012的副本。这没问题。现在我的需求发生了变化,需要从SQL2008 R2复制到SQL2012。查询现在生成以下错误: Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query. 导致该查询的查询包含我正在OLEDB源中分配的参
Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.
导致该查询的查询包含我正在OLEDB源中分配的参数(整型):
SELECT MetricValues.MetricValue_RunId, MetricValues.MetricValue_SampleNumber, MetricValues.MetricValue_MetricId, MetricValues.MetricValue_Value
FROM MetricValues
INNER JOIN Runs ON MetricValues.MetricValue_RunId = Runs.Run_id
INNER JOIN STR_RequiredMetricList ON MetricValues.MetricValue_MetricId = STR_RequiredMetricList.id
WHERE (Runs.Run_endtime > DATEADD([day], (?*-1), GETDATE()))
它只是获取少于[parameter]天的记录
从2008年复制到2012年是否有可能导致此错误的原因?不是真正的解决方案,但作为一种解决方法,我创建了字符串包级别的变量,并使用脚本对象用查询和变量填充它们。然后我引用了数据源中的查询 为参数(整型)分配什么?为其分配OLE DB源对象中的ssis参数功能。在2012年到2012年期间,参数列表会很好地显示出来,在执行2008年R2到2012年期间,单击参数按钮表示无法从SQL命令中提取参数。您可以尝试做一些事情-您的查询是否有任何内联注释?在移除参数后,检查参数是否在2008 R2中出现。在两者之间放置一个空格吗?和*帮助获得参数以显示2008 R2?不幸的是,这些建议没有乐趣-我将尝试创建一个变量,并使用脚本对象在其中设置查询,看看是否有效。。。