说到数据迁移,方法有很多,大家了解最多的就是数据库的导入导出,那就先从导入导出说起。
1.通过导入导出迁移数据数据]
导出指定表的数据
exp name/pass@orcl file= d:\tab1.dmp tables=(tab1)
导入表数据
imp kf/zx@zxcc file=d:\zxcc_tb.dmp tables=(tb_operator)
大部分接触过数据库的人都了解过相似操作。多表多数据时推荐使用,单表时就显得操作复杂不推荐
2.通过sql迁移数据
INSERT
INTO
tab1 (
SELECT
com1,com2 FORM tab2 [
)where ROWNUM>1
]
解释:具体意思就是将tab2中的数据插入到 tab1中,也可以添加相应的选择及插入顺序选项,灵活多变,对于数据库不大很大的操作,推荐使用。
3.通过触发器迁移数据
通过第四种方式变形而来,具体思路:
CREATE TRIGGER ...
BEFORE(INSERT/UPDATE/DELETE)
BEGIN
INSERT
INTO
tab1 ...
END
需要创建触发器并创建相应语句,不推荐使用。
4.通过存储过程迁移数据
存储过程貌似也可以做到,对这方面了解不多,抛砖引玉吧,有想法的给我留言,共同探讨
5.通过编程迁移数据
这种方式应该是大家都熟悉的一种方式,具体思路:读取数据库数据,写入数据库数据。及,通过程序读取你需要的信息,选择有用的信息循环插入你要迁移的数据库的具体的某个表中。即:select all --->>insert all
例如:
第一步:通过查询语句查询所需信息 select com1,com2 from tab1 [where ...];
第二步:通过通过程序循环插入 insert into tab2 values(com1,com2);
此种方式编写简单,复用性好,对刚接触数据迁移不熟悉其他方式迁移的童鞋比较推荐,缺点就是过分依赖编程,不是所有情况下都试用。
身边暂时没有工具,先把理论写好,等以后有时间,再把代码加上。