日期:2014-05-18  浏览次数:20413 次

请教,sqlserver2005中的ssis功能,变量传入问题
案例:
在sqlserver2005中通过ssis包获取oracle数据库表oramytable中符合日期要求的数据,然后导出到sqlserver2005中的sqltable表中,表结构相同。

oratable表结构
ID,int
TestDate,date
myname,string
myvalue,string

sqltable表结构
id,int
Testdate,datetime
myname,string
myvalue,string

现在需要通过ssis包,将testdate等于当天日期的数据从oracle库导入到sqlserver2005中。

我的步骤如下:
第一步:建立包变量 ,名称为varmydate,作用域为包内,类型datetime,初始值为1899-12-30
第二步:在控制库中创建一个执行SQL任务组件,connectionType = ole db,connectoin = oraconection,sqlstatement = select sysdate as mydate from dual(这步没有问题)
第三步:在数据流页面中,创建ole db源。连接管理器为oraconnection,数据访问模式为sql命令,sql命令文本为select * from oratable where testdate = ?,这时点“参数”时,提示“无法从sql命令中提取参数。在这种情况下,请使用变量中的sql命令访问模式。
于是,我定义了一个sqlcmd的变量,准备用它保存带条件的sql语句,然后把这个变量传给ole db中“使用变量中的sql命令访问模式”中的变量。


现在困惑的是,我如果构造这个sqlcmd变量中的sql语句,用哪个组件(脚本组件不太会用,对vb脚本不熟悉)

请高手指教,先谢过了,请救急!!!


------解决方案--------------------
直接用导入导出功能嘛。
------解决方案--------------------
探讨
直接导入不行的,要每天都自动导入的,所以要创建ssis包.

终于搞定了,我是通过DataReader组件的表达式完成的。