Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Ssis 查询时出现数据流给定错误_Ssis_Sql Server 2008 R2_Sql Server 2012 - Fatal编程技术网

Ssis 查询时出现数据流给定错误

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源中分配的参

我有一个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源中分配的参数(整型):

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?不幸的是,这些建议没有乐趣-我将尝试创建一个变量,并使用脚本对象在其中设置查询,看看是否有效。。。