SSIS 连接ORACLE 无法从 SQL 命令中提取参数的解决方案
2016-12-27 18:20 假面Wilson 阅读(1082) 评论(0) 编辑 收藏 举报第一步:
定义包变量:maxdate 类型为String
定义包变量:sqlStatement类型为String,值为:select * from i_out_serv_mon
第二步:
取"执行SQL任务"组件,设置SQLStatement为:
select to_char(max(scn_time),'YYYY/MM/DD HH:MI:SS') md from i_out_data_scn_info where table_name = 'I_OUT_SERV_SCN'
第三步:
在执行SQL任务组件中设置结果集,结果名称为:md,值为:用户::maxdate
-----------------以上为给变量赋值----------------------
第四步:
取 "脚本任务"组件,
脚本语言选择:Microsoft Visual C# 2010,
只读变量:用户::maxdate
读写变量:用户::sqlStatement
点击编辑脚本:在Main()中输入:
Dts.Variables["用户::sqlStatement"].Value = string.format("{0} where start_time >= to_date('{1}','YYYY/MM/DD HH:MI:SS')",Dts.Variables["用户::sqlStatement"].Value,Dts.Variables("Dts.Variables("用户::maxdate")").Value)
取 “数据流任务”组件,双击进入"数据流"页面
第五步:
取 “OLEDB源”组件,设置连接为连接到ORACLE数据库,连接驱动为:microsoft old db provider for oracle(连接没有问题)
第六步:
设置访问模式为:SQL Command from variable
变量名称选择:用户::sqlStatement