请教,sqlserver2005中的ssis功能,变量传入问题

gsoft 2011-08-21 02:04:26
案例:
在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脚本不熟悉)

请高手指教,先谢过了,请救急!!!
...全文
252 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanwza 2011-08-29
  • 打赏
  • 举报
回复
学习....
--小F-- 2011-08-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gsoft 的回复:]
直接导入不行的,要每天都自动导入的,所以要创建ssis包.

终于搞定了,我是通过DataReader组件的表达式完成的。
[/Quote]
gx
gsoft 2011-08-21
  • 打赏
  • 举报
回复
直接导入不行的,要每天都自动导入的,所以要创建ssis包.

终于搞定了,我是通过DataReader组件的表达式完成的。
快溜 2011-08-21
  • 打赏
  • 举报
回复
直接用导入导出功能嘛。
gsoft 2011-08-21
  • 打赏
  • 举报
回复
顶一下
gsoft 2011-08-21
  • 打赏
  • 举报
回复
刚才上面的语句更正一下,发布错了,更正如下:

更正:
但是我在脚本任务中也按上面格式写了"select * from oratable where testdate = '" + @[用户::vstartdate] + "'"

更正为:

但是我在脚本任务中也按上面格式写了"select * from oratable where testdate = '" + @[用户::varmydate] + "'"


gsoft 2011-08-21
  • 打赏
  • 举报
回复
俺的目的就是想把varmydate传到sqlcmd ,形成一个可执行的sqlcmd串,但找了好多资料,也没有人说怎么把varmydate传进去。

csdn上看到有人说下面办法可行(转过来的话):

我的解决方法:
1.定义两个变量,一个是日期变量maxDate,一个是用于存放SQL字符串的变量sqlCmd,
2.在“脚本任务”组件中的ReadWritevarible属性中写上:"select * from i_out_serv_scn where state_date = '" + @[用户::maxDate] +"'"
3.然后添加一个“数据流任务”组件,双击在“数据流”中增加一个"OLE DB源"
4.把"OLE DB源"中的数据访问模式设为“变量中的SQL命令”,变量名称设为:用户::maxDate
5.执行,成功。完毕


但是我在脚本任务中也按上面格式写了"select * from oratable where testdate = '" + @[用户::vstartdate] + "'"

但是这个串怎么能放到sqlcmd变量中呢?
geniuswjt 2011-08-21
  • 打赏
  • 举报
回复
ssis盲表示来过
chuanzhang5687 2011-08-21
  • 打赏
  • 举报
回复
路过,不懂,学习,帮顶!
gsoft 2011-08-21
  • 打赏
  • 举报
回复
急!!!!
gsoft 2011-08-21
  • 打赏
  • 举报
回复
自己顶
gsoft 2011-08-21
  • 打赏
  • 举报
回复
sqlcmd这个变量的值通过什么组件可以给它赋上值呢,第二步是通过“执行sql任务”组件给varmydate 变量赋的值,而这个sqlcmd应该用啥来给它赋值呢

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧