[2010-03 update] Note:800386.1 "ORA-1555 - UNDO_RETENTION is silently ignored if the LOB resides in a MSSM tablespace [ID 800386.1]" This means for all versions (including 11g except securefile LOB in 11g), LOB CR policy is not retention-based unless its tablespace is ASSM. 9i documentation says "PCTVERSION is the default in manual undo mode. RETENTION is the default in automatic undo mode." Not true. Test in 9i shows that default is always PCTVERSION. Also, some documents say it's not possible to tell what consistent read policy it's using. Yes, it's possible. To check the policy whether it's retention or pctversion based, you can use this SQL: --9i LOB CR Policy Check define table_name=&table_name define table_owner=&table_owner col column_name for a30 select lobs.column_name, decode(bitand(lob$.flags,32), 32, 'Retention', 'Pctversion') || ' policy used' "LOB CR Policy" from sys.lob$, dba_objects obj, dba_lobs lobs where lob$.lobj# = obj.object_id and obj.object_name = lobs.segment_name and lobs.table_name = '&table_name' and lobs.owner = '&table_owner'; Do a test with and without undo_management=auto: In one window, do create table testlob (a clob); --Run the above SQL to check LOB CR policy alter table testlob modify lob (a) (pctversion 10); --Run the above SQL alter table testlob modify lob (a) (retention); --Run the above SQL In 10g, either pctversion or retention column in dba_lobs but not both are populated, so you can tell. (If you ask why 32 of sys.lob$.flags, it's documented in 10g sql.bsq, but not in 9i sql.bsq even though it's already used in 9i.) 20070623 Note: Found Bug 5232233, where there's the definition of a view DBA_LOB_RETENTION that can differentiate pctversion from retention: create or replace view DBA_LOB_RETENTION (OWNER, TABLE_NAME, COLUMN_NAME, PCTVERSION, RETENTION) as select u.name, o.name, decode(bitand(c.property, 1), 1, ac.name, c.name), decode(bitand(l.flags, 32), 0, l.pctversion$, to_number(NULL)), decode(bitand(l.flags, 32), 32, l.retention, to_number(NULL)) from sys.obj$ o, sys.col$ c, sys.attrcol$ ac, sys.lob$ l, sys.user$ u where o.owner# = u.user# and o.obj# = c.obj# and c.obj# = l.obj# and c.intcol# = l.intcol# and c.obj# = ac.obj#(+) and c.intcol# = ac.intcol#(+) and bitand(c.property,32768) != 32768 /* not unused column */;