• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
杨杨父亲的Tech Blog
博客园    首页    新随笔    联系   管理    订阅  订阅

【原创】利用SSIS处理系统数据的迁移初体验

        在新旧软件系统交替的时候,通常需要将老系统的数据迁移到新的软件系统。使用什么工具好呢,1、自己编写数据升级的程序,太麻烦!要考虑的方面太多!2、使用ms sql server 2000的DTS, 功能比较单一,不能满足要求! 3、使用SSIS,集成在开发工具VS2005中,很方便使用,且功能强大! 所以采用了这种方法。数据流如下:

image

    • 要考虑Oracle表中的序列字段,怎么获取序列,我使用的是脚本组件Script Component,在脚本组件中添加Oracle的数据库连接。

             

      Code
              Dim conn As OracleConnection 
              conn 
      = CType(Me.Connections.Connection.AcquireConnection(Nothing), OracleConnection) 
              
      Dim command As New OracleCommand 
              
      command.Connection = conn 
              
      command.CommandType = CommandType.Text 
              
      command.CommandText = "select s_fs_tanancy_price.nextval as id from dual" 
              Row.indentity 
      = command.ExecuteScalar().ToString()

      注意:要采用ADO.Net的连接方式,若使用OLEDB连接会出现错误,提示COM无法转换为.net类型。

    • 考虑数据迁移中表中某些字段的内容已经成为了外键,那么就使用Lookup组件,或者脚本组件。我使用的是脚本组件,因为我是新手,总觉得代码灵活些,但是不知道性能和Lookup组件有啥区别。代码如下:

             

      Code
              command.CommandText = String.Format("select 。。。。") 
              
      Me.Log(String.Format("{0}-{1}", Row.indentity, Row.车型), 0, x) 
              Row.车型 
      = command.ExecuteScalar().ToString()

       

    • 另外,为了查看处理过程中的数据,可以在连接线上增加查看器DataViewer,选中连接线,右键,查看器,打开窗口,设置要查看的列和显示形式就可以了,很简单和实用。
    • 遇到另外一个问题是,Excel导入的数据有一列数据明明有数据,在查看器中显示为null,很奇怪,传上excel附件,希望高手帮忙看看。
posted @ 2009-01-15 16:39  杨少江  阅读(769)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3