【问题标题】:Oracle Lob segment does not belong to a specific table or does not have tableOracle Lob 段不属于特定表或没有表
【发布时间】:2017-12-09 07:27:43
【问题描述】:

我一直在尝试定位属于特定大 lob 段的表。但是,结果始终指定此 lob 段不属于任何表(未选择任何行)

SQL> select owner, table_name, column_name 
  2  from dba_lobs 
  3  where segment_name = 'SYS_LOB0000551103C00007$$';
no rows selected

有没有办法找到lob所在的表?

【问题讨论】:

标签: oracle


【解决方案1】:

LOB 段可能是孤立的。当 LOB 列设置为unused 时,它会从dba_lobs 视图中清除,但仍可以在dba_objectsdba_segments 中看到。

使用以下查询查找 LOB 段的详细信息。

select u.name, o.name TABLENAME, decode(bitand(c.property, 1), 1, ac.name, c.name) as column_name
from sys.obj$ o, sys.col$ c, sys.attrcol$ ac,sys.lob$ l,sys.obj$ lo,sys.obj$ io,
sys.user$ u,sys.ts$ ts
where o.owner# = u.user#
and o.obj# = c.obj#
and c.obj# = l.obj# and c.intcol# = l.intcol#
and l.lobj# = lo.obj# and l.ind# = io.obj# and l.ts# = ts.ts# and c.obj# =
ac.obj#(+)
and c.intcol# = ac.intcol#(+) and lo.name ='SYS_LOB0000551103C00007$$';

或者,LOB 段可能属于位于回收站中的已删除表。您可以使用相同的查询来查找表。

【讨论】:

    猜你喜欢
    • 2010-11-08
    • 2010-10-06
    • 2014-01-06
    • 2013-05-25
    • 2016-06-14
    • 2018-01-17
    • 2021-07-23
    相关资源
    最近更新 更多