내가 PL/SQL 블록을 다음 한 cron 작업을 실행하고 있습니다 :ORA-30036 : 실행 취소 테이블 스페이스에 8 세그먼트를 확장 할 수없는 'UNDOTBS'
declare
begin
--insert into DB_LOGS_TEMP table from DB_LOGS table
INSERT INTO DB_LOGS_TEMP SELECT * FROM DB_LOGS WHERE DB_LOG_ID NOT IN(SELECT DB_LOG_ID from DB_LOGS_TEMP);
--keep the lat 10 records and delete other records
DELETE DB_LOGS where rowid in (
select rid from (
select t.rowid rid,
row_number() over(partition by T.DB_LOG_ID order by T.TIMESTAMP desc) as rn
from DB_LOGS t)
where rn > 10);
end;
DB_LOGS 테이블 10,247,302 행이 있습니다. cron 작업이 실행되면 ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
과 같은 오류가 발생합니다. tablespce를 높이는 것이이 문제에 대한 유일한 해결책이며 어떻게해야합니까? UNDOTBS에는 524288000 바이트가 있습니다.
많은 레코드를 커밋하지 않고 삭제할 수 있습니다. 어쩌면 커밋을 발행하는 테이블을 반복해야합니다. 그렇게 할 수 있습니까? 아니면 동일한 거래를해야합니까? – vercelli