Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: truncate ORA-01552
That is all true, but the question was related to the non-system tablespace
components of the update, and those updates could logically be relegated to
the SYSTEM undo(aka rollback).
But if you've got more than SYSTEM (and possibly SYSAUX, I haven't dug that deep since they added SYSAUX to see whether they kludged that to allow SYSTEM rollback to be used) you need a non-SYSTEM rollback or undo anyway, so likely Oracle didn't unbundle the special case of TRUNCATE from the DML to non-SYSTEM tablespaces requires a non-SYSTEM rollback(undo) check. Holy cow, you don't really want to be using the SYSTEM rollback for anything but dictionary stuff anyway (although this really is just a dictionary update, hmm, I think I'M recursive now....). Anyway, add a rollback or an undo and the problem will go away...
Regards,
mwf
-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Bobak, Mark
Sent: Monday, December 05, 2005 12:20 PM
To: jknight_at_concordefs.com; oracle-l_at_freelists.org
Subject: RE: truncate ORA-01552
Truncate is a data dictionary update. The truncate translates into recursive SQL that does updates to various data dictionary base tables, such as superobj$, tab$, seg$, obj$ and tsq$. Each of those DMLs must write redo AND undo.
-Mark
All,
When trying to "truncate <table_name>", I'm getting the following:
ORA-01552: cannot use system rollback segment for non-system tablespace 'AMA30_DATA' Since truncate can't be rolled back, why is this a problem?
Thanks,
Jon Knight
<snip>
--
http://www.freelists.org/webpage/oracle-l
Received on Mon Dec 05 2005 - 16:35:16 CST
![]() |
![]() |