把原有系统中的数据传入到现在的数据库,
原数据导出来以后是dmp格式、压缩成zip(建议压缩成zip)
使用ftp传到linux服务器,然后使用Xshell找到文件位置使用命令解压zip
我使用的是 unzip XXX.zip;
然后执行,
命令:
imp 数据库名字/密码@地址/数据源 file=/xxx/xxx/xxx.dmp(文件夹路径) tables=XXX(表名)
如果表多,在后面追加就可以如:tables=xxx,xxx,xxx
等它执行完就ok了
遇到的问题:
一、原有系统是用的Oracle11g 编码是gbk,现在的数据库是Linux版Oracle12c 编码是utf-8。编码不同字段长度也会不同
这样就会遇到如果一个字段的某个数据过长,则导不进去,最后结果数据不全。
解决办法,先导入一遍,把报错的字段改大长度,(如果有触发器一定关掉,否则无法修改字段和删除数据)。
然后再执行一次上一条命令,但是要在命令的最后加上:ignore=y
例:imp 数据库名字/密码@地址/数据源 file=/xxx/xxx/xxx.dmp(文件夹路径) tables=XXX(表名)ignore=y
这样就ok了
二、主键唯一问题
使用上一个方法还是不行,错误信息违反主键唯一,
解决方法:再表中新建一个字段做为ID,设为主键,主键自增,然后使用问题一中的命令,就ok了。