在cmd命令行中用exp命令进行需要导出的用户表。
exp username/password rows=y grants=y file=filename%today%.dmp log=logname%today%.log full=N
在cmd命令行中用imp命令进行需要导入的用户表。
imp username/password fromuser=XX touser=username 【full=y】 file= filename.dmp ignore=y log= logname20101015.log
在PL/SQL DEV中,选command window. 用@+回车。把sql文件导入。用COMMIT即可。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:\data\newsmgnt.dmp ignore=y
imp dekey/dekey529@ORCL full=y file=c:\dekey.dmp ignore=y
imp wqetkf/wqetkf1502 tables=TB_MAN_RECTIFY file=/home/newsmgnt.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
alter table table_name add(temp_column varchar2(20));
update table_name set temp_column = number_column;
---
update table set number_column = null;
alter table modify number_column to varchar2 ;
update table set number_column = temp_column
---
alter table table_name drop column number_column;
本文详细介绍了如何在cmd命令行中使用exp和imp命令进行数据库表的导出和导入,包括完整导出、指定用户表导出、特定查询结果导出等常见操作。同时,展示了如何在PL/SQLDEV中通过@符号导入SQL文件,并通过COMMIT完成数据更新。还提供了数据压缩方法及数据导入时处理已存在的表问题的解决方案。
1634

被折叠的 条评论
为什么被折叠?



