代码改变世界

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