DM8 如何修改表所在的默认表空间
我们知道在oracle中,我们如果需要移动表从一个表空间到另外一个表空间,我们可以采用:
alter table 表名 move tablespace 新表空间名;
那么我们在DM中怎么去操作呢,DM中没有move直接的这个命令(可能我还未发现)。不过条条大道通罗马,可以采用下面的方式来实现:
-
通过复制功能,获取原表建表语句和数据插入语句。创建一张新表,然后重命名即可。
得到建表语句后,我们调整默认表空间,然后执行即可
比如:
CREATE TABLE "HC"."TAB_COPY"
(
"ID" NUMBER,
"NAME" VARCHAR(20)) STORAGE(ON "MAIN", CLUSTERBTR) ;
INSERT INTO "HC"."TAB_COPY" SELECT * FROM "HC"."TAB";
将MAIN 改成我们需要移动的表空间,然后insert into 即可
CREATE TABLE "HC"."TAB_COPY"
(
"ID" NUMBER,
"NAME" VARCHAR(20)) STORAGE(ON "TBS1", CLUSTERBTR) ;
INSERT INTO "HC"."TAB_COPY" SELECT * FROM "HC"."TAB";
alter table hc.tab rename to tab_old;
alter table "HC"."TAB_COPY" rename to tab;
这样我们也达到了我们需要的功能移动原表到新的表空间中,^_^
其实这中心思想就是获取到原表的建表语句,然后重建新表,插入数据,最后更换表名,达到目的!