移动一个表到另一个模式的方法

  

可以有以下几种常用的办法:
1, expdp/impdp

2, cta +并行+ nologin

,,,,第二种方法要注意主键在新表是没有创建的

<代码dir=" ltr ">不是 <代码dir=" ltr ">零代码> info@PROD>, create  table  big_table吗   2,才能作为   ,,3,select  rownum  id, a.OWNER,, a.OBJECT_NAME,, a.SUBOBJECT_NAME,, a.O ,, 3,,   ,,3,select  rownum  id, a.OWNER,, a.OBJECT_NAME,, a.SUBOBJECT_NAME,, a.OBJECT_ID, a.DATA_OBJECT_ID   4,,,,,得到all_objects    5,才能,where  1=0   6,才能/Table 创建。   运行:00:00:00.09   info@PROD>, alter  table  big_table  nolog;   Table 改变。   运行:00:00:00.01   info@PROD>声明   2,,,,,,,,l_cnt 数量;   3,,,,,,,,l_rows  number :=,, 1;   4,才能开始   5,,,,,,,,insert /* +, append  */6,,,,,,,,into  big_table   7,,,,,,,,select  rownum,, a.OWNER,, a.OBJECT_NAME,, a.SUBOBJECT_NAME,, a.OBJECT_ID, a.DATA_OBJECT_ID   8,,,,,,,,,得到all_objects    9,,,,,where  rownum  & lt;=,, 1;   10,大敌;   ,11,,,,,l_cnt :=, sql % rowcount;   12,大敌;   ,13,,,,,提交;   14,大敌;   ,15,,,,,while  (l_cnt  & lt;, l_rows)   ,16岁,,,,,循环   ,17岁,,,,,,,,,insert /* +, APPEND  */, into  big_table   ,18岁,,,,,,,,,select  rownum + l_cnt,,   ,19岁,,,,,,,,,,,,,,,,老板,OBJECT_NAME,, SUBOBJECT_NAME,, OBJECT_ID, DATA_OBJECT_ID   ,20,,,,,,,,,,得到big_table   ,21岁,,,,,,,,,,where  rownum  & lt;=, l_rows-l_cnt;   ,22岁,,,,,,,,,l_cnt :=, l_cnt  +, sql % rowcount;   ,23岁,,,,,,,,,提交;   ,24岁,,,,,最终获得循环;   ,25日,结束;   ,26/Enter  value  for  1: 8000000   old ,, 3:,,,,, l_rows  number :=,, 1;   new ,, 3:,,,,, l_rows  number :=, 8000000;   Enter  value  for  1: 8000000   old ,, 9:,, where  rownum  & lt;=,, 1;   new ,, 9:,, where  rownum  & lt;=, 8000000;   PL/SQL  procedure  successfully 完成。   运行:00:00:07.73   info@PROD>, select  count(*),得到big_table;   ,,COUNT (*)   ----------   ,,8000000   运行:00:00:01.86   info@PROD>, alter  table  big_table  add  constraint  big_table_pk  primary 关键(id);   Table 改变。   运行:00:00:38.63   info@PROD>, info@PROD>, exec  dbms_stats.gather_table_stats(用户的不同之处是,‘BIG_TABLE’, estimate_percent=祝辞,1);   PL/SQL  procedure  successfully 完成。

创建中间表:

info@PROD> CREATE  TABLE  big_table_temp   2,,,,,,PARTITION  BY  RANGE  (id)   ,,3,,,(PARTITION  id_1  VALUES  LESS  THAN  (MAXVALUE))   4,,,,,,   5,,,,,,,SELECT  *   6,,,,,,,,得到big_table   7,,,,,,,,WHERE  ROWNUM  & lt;=, 0;   info@PROD>, alter  table  big_table_temp  add  constraint  pk_big_table_temp_id  primary 关键(id);

为pinfo用户授权:

info@PROD>,, grant  ALL 提醒big_table 用“pinfo”;   info@PROD>,, grant  ALL 提醒big_table_temp 用“PINFO”;

登录PINFO,创建信息同名表:

info@PROD> conn  PINFO/admin   连接。   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

移动一个表到另一个模式的方法