Oracle批量修改使用者表table的表空間

2021-06-10 03:07:36 字數 2355 閱讀 7291

一、修改使用者表table的表空間

1、修改使用者表table的表空間:alter table 表名 move tablespace 新錶空間名;

2、查詢所有使用者表:select * from user_tables;

【指令碼】

查詢當前使用者的所有的資料表,並把表空間為「eas_d_hfy_standard」的使用者表,修改為:eas_d_hfy120929_standard。

/* formatted on 2012-10-11 14:17:04 (qp5 v5.115.810.9015) */

declare

i_count int := 0;

execsql varchar2 (1000);

cursor c_mysql

isselect 'alter table '

|| table_name

|| ' move tablespace eas_d_hfy120929_standard'

mysql

from user_all_tables

where tablespace_name = 'eas_d_hfy_standard';

begin

for r_mysql in c_mysql

loop

dbms_output.put_line (r_mysql.mysql);

execute immediate r_mysql.mysql;

i_count := i_count + 1;

end loop;

dbms_output.put_line ('i_count: ' || i_count);

exception

when others

then

dbms_output.put_line (

'異常:' || 'sqlcode:' || sqlcode || ' sqlerrm : ' || sqlerrm

);end;

二、修改索引index的表空間

【問題】

【分析】

2、進一步分析,發現系統中的索引index_type有3類:normalfunction-based normallob,除index_type為lob型別的索引狀態為valid外,normal、function-based normal型別的索引狀態均被設定為不可用狀態了unusable

3、分析索引的語句如下:

select index_name,index_type,tablespace_name,table_type,status from user_indexes;

【指令碼】

查詢當前使用者所有非lob索引,並把表空間為「eas_d_hfy_standard」的索引,更新為:eas_d_hfy120929_standard。

/* formatted on 2012-10-11 14:31:42 (qp5 v5.115.810.9015) */

declare

i_count int := 0;

cursor c_mysql

isselect 'alter index '

|| index_name

|| ' rebuild tablespace eas_d_hfy120929_standard'

mysql

from user_indexes

where tablespace_name = 'eas_d_hfy_standard' and index_type<>'lob';

begin

for r_mysql in c_mysql

loop

dbms_output.put_line (r_mysql.mysql);

execute immediate r_mysql.mysql;

i_count := i_count + 1;

end loop;

dbms_output.put_line ('i_count: ' || i_count);

end;

關於ora-01502的問題,詳見:

《ora-01502錯誤成因和解決方法》

其實重建普通索引成功後,也試著努力更新lob索引的,只是在詳細閱讀《如何重建lob型別的索引和lob段》後只好無奈地放棄!

oracle修改使用者密碼

修改密碼命令 alter user user identified by password 可能出現的錯誤 錯誤原因可能是 單雙引號造成的 alter user user identified by 1234 注意必須是雙引號,單引號不行。ora 28221 replace not specifie...

Oracle修改使用者密碼

oracle資料庫密碼在資料維護和開發過程中有很重要的作用,如果不經常使用或者通過某些軟體記住密碼,極其容易忘記。下面就分享一下怎麼去修改使用者密碼。修改使用者密碼主要分為修改通過系統管理員修改密碼和忘記系統管理員修改密碼。修改普通使用者密碼相對來說簡單很多。1.1 登入系統管理員賬戶。一般為sys...

Oracle修改使用者密碼

oracle資料庫密碼在資料維護和開發過程中有很重要的作用,如果不經常使用或者通過某些軟體記住密碼,極其容易忘記。下面就分享一下怎麼去修改使用者密碼。修改使用者密碼主要分為修改通過系統管理員修改密碼和忘記系統管理員修改密碼。1.通過系統管理員 system 修改密碼 修改普通使用者密碼相對來說簡單很...