需要使用SSIS从Sql Select语句动态生成excel文件吗?

需要使用SSIS从Sql Select语句动态生成excel文件吗?,ssis,Ssis,我想使用SSIS包动态生成excel文件。 我试着如下: 在数据流任务中,我在Oledb源代码编辑器 在连接管理器下从变量中获取数据访问模式=sql命令,因为我的变量具有如下sql查询从mytable中选择cusip、price、company,其中日期介于@[var1]和@[var2]之间 但是我没有使用var1和var2它给了我解析错误 在ssis项目中创建了3个变量 var1 datatype=datetime value=5/01/2011 8:22:10 AM var2数据类型=日期时

我想使用SSIS包动态生成excel文件。 我试着如下:

数据流任务
中,我在
Oledb源代码编辑器
连接管理器下
从变量中获取
数据访问模式=sql命令
,因为我的变量具有如下sql查询
从mytable中选择cusip、price、company,其中日期介于@[var1]和@[var2]之间

但是我没有使用
var1
var2
它给了我解析错误

在ssis项目中创建了3个变量

var1 datatype=datetime value=5/01/2011 8:22:10 AM

var2数据类型=日期时间值=2011年5月21日上午8:22:10

var3 datatype=datetime value=MY上述选择查询
使用上面的选择查询,我想每天生成新的excel文件,文件名为
myfile052222013
(昨天的日期)

var 3作为字符串并向表达式中添加值
但获取解析错误:

Error code: 0x80040E14.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E14  Description: "Statement(s) could not be prepared.".
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E14  Description: "Must declare the scalar variable "@".".


数据类型“DT_WSTR”和“DT_DATE”与二进制运算符“+”不兼容。操作数类型无法隐式转换为操作的兼容类型。要执行此操作,需要使用强制转换运算符显式强制转换一个或两个操作数。

请给我一些建议


尝试将var3设置为字符串数据类型(而不是日期时间)。给它一个这样的表达:

"select cusip,price,company from mytable where date in between " + @[User::var1] + " and " + @[User::var2]
同时使var1和var2变量成为字符串数据类型。使用解析为有效日期时间值的默认值设置var1和var2

要查看表达式的计算结果,请单击


对于输出文件,您需要一个Excel目标。目标连接管理器将有一个文件名表达式。在这个表达式中,您将构建一个类似“MYFile05222013”的文件名。

我想将@var2动态设置为以前的日期,我该怎么做?请帮助在var2的表达式中使用。在构建select查询时,需要将其转换为字符串。您修复了Oledb源中的解析错误了吗?没有,我再次遇到相同的错误:
错误代码:0x80040E14。OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80040E14说明:“无法准备语句。”。OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80040E14说明:“必须声明标量变量“@”。”也出现错误:`数据类型“DT_WSTR”和“DT_DATE”与二进制运算符“+”不兼容。操作数类型无法隐式转换为操作的兼容类型。要执行此操作,需要使用强制转换运算符显式强制转换一个或两个操作数。可能最好去掉var3,并在类似“SELECT*FROM Production.Product WHERE Color=?and Size=?”中使用var1和var2