cmd :
exp 用户名/密码@实例名 file=导出的dmp文件存放路径 log=导出日志存放路径
exp test/test@orcl file=c:\test\test.dmp log=c:\test\test.log
注意: test.dmp test.log和所在路径必须先创建好
然后cm 导入
imp 用户名/密码@实例名 file=导入的dmp文件路径 full=y
imp aichannel/aichannel@HUST full=y file= d:/data/newsmgnt.dmp ignore=y
解决无法导入binary_double
解决办法,使用expdp/impdp代替exp/imp
参照:https://blog.csdn.net/ajax_yan/article/details/106646326
解决exp导出时少表,空表不导出
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null
上述代码可产生批量的修改表extent的SQL语句(有多少张空表就产生多少条),我们只需要将其生成的所有sql代码全部执行(复制出来执行或者导出来执行这些sql),就可以给每一张已经存在的表来分配 segment,就OK了。
再用exp命令进行导出即可。
解决乱码
首先查询 客户端与服务器端的字符集格式,在有dba权限的用户下使用下面的sql
SQL> select userenv('language') from dual;
查询服务端结果
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
发现服务器端和客户端不一致,使用下面的方法将客户端字符集改成与服务器端一致
--linux客户端
env|grep NLS_LANG
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
--windows客户端
echo %NLS_LANG%
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
如果linux环境查询不到NLS_LANG,可以重新设置下客户端字符集环境(export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)