在新旧软件系统交替的时候,通常需要将老系统的数据迁移到新的软件系统。使用什么工具好呢,1、自己编写数据升级的程序,太麻烦!要考虑的方面太多!2、使用ms sql server 2000的DTS, 功能比较单一,不能满足要求! 3、使用SSIS,集成在开发工具VS2005中,很方便使用,且功能强大! 所以采用了这种方法。数据流如下:
-
- 要考虑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附件,希望高手帮忙看看。
- 要考虑Oracle表中的序列字段,怎么获取序列,我使用的是脚本组件Script Component,在脚本组件中添加Oracle的数据库连接。