更改表移动命令 - ORACLE

时间:2014-12-17 00:58:15

标签: oracle11g alter-table tablespace

考虑我在表空间TS1中有TABLE1。我有另一个表空间TS2。

以下三个之间有什么区别

  1. ALTER TABLE TABLE1移动NOLOGGING PARALLEL;

  2. ALTER TABLE TABLE1移动TABLESPACE TS1 NOLOGGING PARALLEL;

  3. ALTER TABLE TABLE1移动TABLESPACE TS2 NOLOGGING PARALLEL;

  4. 提前致谢..

2 个答案:

答案 0 :(得分:5)

根据Database SQL Language Reference

  

move_table_clause允许您将非分区表或分区表的分区的数据重新定位到新段中,可选地在不同的表空间中,并可选择修改其任何存储属性。

因此,使用您的第一个语句,Oracle会将表移动到同一表空间上的新段,而在其他两个语句中,Oracle会将表移动到指定表空间(分别为TS1和TS2)上的新段。 / p>

如果TABLE1已经在表空间TS1上,则第一个和第二个命令将执行相同的操作。

在不更改表空间的情况下使用MOVE只会重新组织原始表空间上的段。

答案 1 :(得分:0)

我尝试了许多脚本,但不适用于所有对象。您无法将群集的objects从一个tablespace移动到另一个https://www.orahow.com/2018/06/move-all-objects-to-another-tablespace.html,因为您将不得不使用expdp。因此,我建议expdp是将所有对象移动到不同表空间的最佳选择。

下面是命令。

nohup expdp \"/ as sysdba\" DIRECTORY=test_dir DUMPFILE=users.dmp LOGFILE=users.log TABLESPACES=USERS &

https://github.com/jamesmontemagno/FloatingActionButton-for-Xamarin.Android