這個(gè)要看你的業(yè)務(wù)要不要備份保留這個(gè)分區(qū)的數(shù)據(jù),如果不需要保留,可以直接truncate/drop分區(qū)的,如果要保留,可以用交換分區(qū)方法;
創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),友情鏈接,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
具體步驟:
1.不保留,直接刪除:
alter
table
table_name
drop/truncate
partition
partition_name;
具體用drop還是truncate,得你自己衡量,drop的話原來的分區(qū)和數(shù)據(jù)直接就沒有了,truncate的話,只是數(shù)據(jù)沒有了,分區(qū)還在。
2.保留數(shù)據(jù)作為備份,交換分區(qū)
2.1創(chuàng)建一個(gè)表結(jié)構(gòu)一樣的表:
create
table
teable_bak
as
select
*
from
table_name
where
1=2;
--只要表結(jié)構(gòu),不要數(shù)據(jù);
2.2分區(qū)交換
alter
table
table_name
exchange
partition
partition_name
with
table
table_bak;
這樣執(zhí)行后,分區(qū)partition_name的數(shù)據(jù)就會(huì)交換到table_bak中,table_bak的數(shù)據(jù)(剛剛建的空表)就會(huì)到分區(qū)里面去。
可以用
ALTER
TABLE
DROP
PARTITION
來刪除分區(qū),元數(shù)據(jù)和數(shù)據(jù)將被一并刪除。
全刪除
ALTER
TABLE
yourTable
DROP
PARTITION
partionName1;
清數(shù)據(jù)
ALTER
TABLE
yourTable
TRUNCATE
PARTITION
partionName1;
語(yǔ)句雖簡(jiǎn)單、操作需謹(jǐn)慎。
oracle是沒有直接刪除全部分區(qū)或多個(gè)分區(qū)的語(yǔ)句,但是可以變通方法
方法一:先備份表,再刪除表、重新創(chuàng)建表;
方法二:拼接
sql語(yǔ)句
,比如
SELECT
'ALTER
TABLE
LOG_INFO
DROP
PARTITION
'
||
PARTITION_NAME
||
';'
FROM
USER_TAB_PARTITIONS
WHERE
TABLE_NAME
=
'LOG_INFO';
可以列出刪除所有分區(qū)的語(yǔ)句,全部執(zhí)行即可。
可以用 ALTER TABLE DROP PARTITION 來刪除分區(qū),元數(shù)據(jù)和數(shù)據(jù)將被一并刪除。
全刪除
ALTER TABLE yourTable DROP PARTITION partionName1;
清數(shù)據(jù)
ALTER TABLE yourTable TRUNCATE PARTITION partionName1;
語(yǔ)句雖簡(jiǎn)單、操作需謹(jǐn)慎。
alter table test truncate partiton a;
alter table test truncate partiton b;
alter table test truncate partiton c;
alter table test truncate partiton d;
declare
job number;
begin
sys.dbms_job.submit(job,trunc(sysdate+1)+2/24,
'alter table test truncate partiton a;
alter table test truncate partiton b;
alter table test truncate partiton c;
alter table test truncate partiton d;'
,'trunc(sysdate+1)+2/24');
commit;
end;
/
可以用 ALTER TABLE DROP PARTITION 來刪除分區(qū),元數(shù)據(jù)和數(shù)據(jù)將被一并刪除。
全刪除
ALTER TABLE yourTable DROP PARTITION partionName1;
清數(shù)據(jù)
ALTER TABLE yourTable TRUNCATE PARTITION partionName1;
語(yǔ)句雖簡(jiǎn)單、操作需謹(jǐn)慎。