請教如何將一個USEE下的所有Tables(大約有200個表)變更到另外一個表空間?

[复制链接]
查看11 | 回复9 | 2007-1-19 01:03:19 | 显示全部楼层 |阅读模式
請教如何將一個USEE下的所有Tables(大約有200個表)變更到另外一個表空間?一個一個的改,太麻煩了!呵呵,我是新手!謝先了!
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
1.用EXP导出该用户的数据
2.删除该用户的所有表
3.修改该用户的默认表空间
4.重新导入数据
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
用mv刷
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
remap_tablespace
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
写个plsql块用for循环让oracle自己逐表move tablespace。
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
fangjinde :您的方法我試先,謝了!
3樓,4樓:用mv刷及remap_tablespace不是太明白?
"外星人"思路不錯啊,可是以後新建的表還要改才行。看來要改默認Tablespace才行
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
各位,我使用2樓 fangjinde 方法:
1.用EXP导出该用户的数据
2.删除该用户的所有表
3.修改该用户的默认表空间
4.重新导入数据
還是不行啊!
我的導入批處理腳本如下:
echo on
set dat=%date:~8%
set dat=%dat:/=%
echo drop user plm CASCADE;|sqlplus system/*******@TestDB_153.180
echo create user plm identified by ****** default tablespace plm temporary tablespace temp_plm profile default;|sqlplus system/******@TestDB_153.180
echo grant dba to plm;|sqlplus system/********@TestDB_153.180
echo grant all privilege to plm;|sqlplus system/********@TestDB_153.180
imp plm/*******@TestDB_153.180 fromuser=plmfile=D:\DMP\plm_153.183_%dat%.dmp
pause
各位大蝦幫我睇下先,謝先了,在線等待!
(用alter table tablename move tablespace tablespacename行,可是太多表了!)
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
還有4樓cursedskull 的 remap_tablespace,我沒有用過,不太明白?可以給出樣句嗎?
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
用exp導出schema
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
如果不是7*24的应用,直接move table,rebuild index
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行