oracle9i 中exp/imp 语句能否实现只导入或者导出部分表,或者部分存储过程等等

表很多有几千张,不能用tables=(table1,table2)这类方法过滤。有其他方法吗?

第1个回答  2011-07-12
可以使用expdp 和 impdp 这对备份恢复命令,
前提是你的oracle帐户必须有物理文件的read和write权限.
如果有权限,就直接expdp和impdp,成功后有一个dumpfile.log 和dumpfile.dmp 把dmp复制过去就可以直接impdp 了.

具体的可以给个参考:
--导出
SQL>create directory dump_dir as 'f:\bak'; ---DBA用户,确定备份文件放哪里(已经存在的目录)?
SQL>grant read,write on directory dump_dir to scott; --赋予scott用户的读写权限
C:>expdp scott/tiger directory=dump_dir [dumpfile=mybackup.dmp] [tables = emp,dept] --dumpfile设置备份文件名 tables 需要导出那些表[tab1,tab2,....]
--导入
C:>impdp scott/tiger directory = dump_dir dumpfile = mybackup.dmp tables = [表名1,表名2 ...]
SQL>是 在sqlplus下操作的, C:>是在系统命令行上操作本回答被提问者采纳
第2个回答  2011-07-12
为什么非要用命令导呢?PL/SQL和toda都有这个功能,而且非常好用
第3个回答  2011-07-13
应该可以的,查一下语句帮助