zoukankan      html  css  js  c++  java
  • OLEDB 命令转换组件的用法

    在数据流任务组件中,OLEDB 命令转换组件对输入的每行数据调用TSQL,该组件能够把输入的数据作为参数,因此,该转换组件主要用于运行参数化的查询。

    命令转换组件的配置十分简单,只有三个可编辑属性,位于Custom Properties下,如图:

    SqlCommand 属性:要执行的SQL命令,使用 ? 代表引用一个参数,每一个参数都是一个外部列,参数的值来源于上游组件的输入

    组件的转换是逐行进行的,组件的输入分为:输入列和外部列,输入列是上游组件输入的数据流,而外部列是SQL命令使用的参数。

    一,参数化查询

    配置SQL命令中包含参数,参数值存储在外部数据列中,外部列的值通过组件的输入列传递,也就是说,需要建立参数和外部列的映射,输入列和外部列的映射。

    1,配置命令属性(SqlCommand)

    OLEDB 连接管理器使用?代表一个参数,按照参数出现的位置,?的序号从0开始,依次递增,OLEDB 通过序号来引用参数值。因此在SqlCommand属性中,

    update dbo.test_data
    set name=?
    where id=?

    2,配置列映射(Column Mappings)

    输入列是上游组件的输入,目的列是SQL 命令中的参数,通过列映射(Column Mappings)的选项卡,配置输入列和参数的映射:

    Param_0对应SqlCommand中序号为0的参数,Param_1对应SqlCommand中序号为1的参数,依次类推。

    3,配置输入和输出属性

    命令转换组件内部实现输入列和外部列的转换,可以通过ErrorRowDisposition属性,设置转换过程对错误的处理模式,分为三种模式:RD_IgnoreFailure(忽略错误),RD_RedirectRow(重定向到错误输出),RD_Failcomponent(组件失败)

    点击External Columns选项卡的Param_x,可以配置参数的属性,配置DataType等属性

     

     由于OLEDB命令转换组件是逐行执行命令的,每执行一次,都要连接数据库,其执行的效率是非常慢的,推荐通过把数据插入到暂存表,在数据库中执行批量数据更新。

  • 相关阅读:
    啥叫ORM
    git reset --hard HEAD^ 在cmd中执行报错
    windows下生成文件目录树
    批量解决win10图标上有两个蓝色箭头的方法
    Sublime Text 3 安装包
    Sublime Text 3 部分安装过程记录
    sense8影评摘抄
    如何取消chrome的自动翻译
    把本地仓库同步到github上去
    关于PDF阅读器
  • 原文地址:https://www.cnblogs.com/ljhdo/p/4488556.html
Copyright © 2011-2022 走看看