-
导出导入
导出:
exp username/password@DBtest file=./t_tab_test.dmp statistics=none
只导出表结构:
exp username/password@DBtest file=./t_tab_test.dmp rows=0 statistics=none
导入:
imp username/password@DBtest file=./t_tab_test.dmp ignore=y destroy=y full=y
ignore=y :ignore=y 表示忽略错误,继续后面的操作;destroy=y 覆盖表空间数据
-
修改 "空表":
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间
需要执行下面生成的语句;
select 'alter table ' || table_name || ' allocate extent(size 64k);' sql_text,
table_name,
tablespace_name
from user_tables where num_rows=0;
-
只导出前1000行:首先先用
select listagg(table_name,',') within group(order by table_name) from dba_tables where owner='USERNAME';
查出这个用户下所有的表,并且用逗号隔开,然后复制查询出的结果,再用exp语句,指定tables=查询出的结果 query="'where rownum<=1000'"即可。示例:
exp username/password@127.0.0.1:1521/orcl file=d:\xxx.dmp tables=xxx,xxx,xxx query="'where rownum<=5000'"