Linux Oracle导入dmp文件

    xiaoxiao2022-07-05  174

    把原有系统中的数据传入到现在的数据库,

    原数据导出来以后是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了。

     

    最新回复(0)