当前位置: 代码迷 >> Sql Server >> 诸位数据库大手请进,小弟跪求解决方案
  详细解决方案

诸位数据库大手请进,小弟跪求解决方案

热度:81   发布时间:2016-04-24 08:51:18.0
各位数据库大手请进,小弟跪求解决方案!
现在我们做了一个项目,主要内容就是数据转换。即把第3方数据库(后面统称来源库)里的数据导入到中间库。

大概步骤:

1.选择来源库和表名,导入字段和字段类型
2.选择中间库的表名和对应字段

问题来了,当我点导入按钮时,我怎么判断 来源库的字段 和 中间库对应的字段 能互相转换,没有因为类型差异而报错。

需要穷举么???这一块没思路,谢谢各位!
------解决思路----------------------
之前弄过oracle转sql server,是设定好两边字段类型的对应关系,转换时再判断。
------解决思路----------------------
必须每张表,逐字段的去做对应关系,如果是兼容类型就直接读取过来,如果需要转换,就要单独处理,这个块的工作量很大,找个心细的人来干。
------解决思路----------------------
任意两种库之间,有一个默认对应类型关系就行了。bool  必定对应 bit ,当然这是默认值,两边都可选。至于使用者选错了。该报错报错,再去检查干嘛...
------解决思路----------------------
一张表N个列就N次对应选择,并确定。(当然所有表所有列也可以都用默认对应。)
这个数据多少无关,只能表数量有关,但表再多也一般2位数而已
是不是咱们说的不在一个频道
------解决思路----------------------
不行就增加一个转换对应表,存放来源表名、来源表字段名、来源表字段类型、中间表名、中间表字段名、中间表字段类型……
先判断一下全部表,生成这个转换对应表,数据导入时,再根据这个转换对应表来转换数据。

我之前在做oracle转sql server时,因为sql server支持多种数据类型自动转换,所以,oracle中的数据基本上都是转换成字符串再导入sql server,导入时,sql server会自动根据字段类型将字符串转换,有少数特殊类型要特别处理。
------解决思路----------------------
先把数据加载到一个数据集(数据集是所有数据库通用的)里面,然后根据不同的数据库生成不同的sql
------解决思路----------------------
只是跟表字段多少有关系,确定了类型转换方向,以后不管有多少的数据转换的方式就确定了
  相关解决方案