第二步(可選),修改對象表空間
1、生成修改表表空間的語句:
select 'alter table '||table_name||' move tablespace xxx_base;' from user_tables;
2、生成修改索引表空間的語句: select 'alter index '||index_name||' rebuild tablespace xxx_base;' from user_indexes;
第三步(可選),drop觸發器
生成drop觸發器的語句:
select 'drop trigger '||trigger_name||';' from user_triggers;
第四步,修改表字段字符串類型字段的長度
如果在修改長度的列上建立了函數索引,需要備份索引定義后刪除,然后修改字段長度再重建函數索引。
set heading off
set space 0
set pagesize 0
set trimout on
set trimspool on
set linesize 2500
spool modify_len.sql
select 'alter table '||table_name||' modify ('||column_name||' '||data_type||'('||ceil(data_length*1.5)||'));'
from user_tab_columns where data_type in ('VARCHAR2','CHAR','NCHAR','NVARCHAR2') and table_name not like 'BIN%' and table_name like 'DSJ%';
spool off
@modify_len.sql
第五步,導入數據之前,需要屏蔽所有外鍵
select 'alter table '||t.table_name||' disable constraint '||t.constraint_name||';' from user_constraints t where t.constraint_type='R' order by t.table_name;
第七步,導入數據之后,需要啟用所有外鍵 select 'alter table '||t.table_name||' enable constraint '||t.constraint_name||';' from user_constraints t where t.constraint_type='R' order by t.table_name;