oracle批量修改表空間

2021-09-30 09:09:27 字數 780 閱讀 7721

oracle中將一張表從乙個表空間的轉移到另乙個表空間中,可以通常一條簡單的sql來完成:

alter table  tablename

move tablespace spacename;

如果想進行批量處理,只需要使用乙個小技巧處理一下就可以了,一般只需要通常使用者字典聯合處理即可,乙個可能的處理方式為:

select 'alter table ' || table_name || ' move tablespace newspacename;'  from all_tables where owner='username'and tablespace_name = 'oldspacename';

這將會生成一串可執行的sql語句,將它們作為一串sql命令執行,就可以達到批量轉移表的表空間的目的,對於索引的表空間轉移也可以採用相同的方式來處理:

select 'alter index '||index_name||' rebuild online nologging tablespace newspacename;'  from all_indexes where table_owner='username' and tablespace_name = 'oldspacename';

其實這種思想可以推廣,它主要是利用了系統字典表,進行sql語句的拼裝,例如我想將乙個使用者***表結構轉到yyy使用者下可以:

select 'create table yyy.'||table_name|| ' as select * from ***.'||table_name|| '; ' from   user_tables

修改oracle表空間

修改oracle表空間 檢視表空間的位置 select a.tablespace name,b.file name,a.block size,a.block size,b.bytes 1024 1024 sum mb from dba tablespaces a,dba data files b w...

Oracle建立修改表空間

今天在現場發現網路監控系統無論我怎麼配置都無法寫入資料到oracle資料庫中,後來一看錶空間使用率已超過了95 當初500m的表空間沒有設定自動擴充套件以及無大小限制,都是粗心惹的禍啊,下面是建立表空間以及修改表空間大小的sql語句,有興趣的童鞋可以看看。建立表空間 oracle10g 初始大小50...

Oracle修改表空間大小

使用oracle10g建立資料庫後,向資料庫中匯入了部分資料,第二天繼續向資料庫中匯入資料表時發生錯誤 org.hibernate.exception.genericjdbcexception ora 00604 遞迴 sql 級別 1 出現錯誤 ora 04031 無法分配 256 位元組的共享記...