2017-12-09 23 views
0

特定の大きなLOBセグメントに属するテーブルを検索しようとしています。しかし、結果は常にLOBが属しているテーブルを見つけるためにどのような方法があります(行が選択されていない)、このLOBセグメントは、任意のテーブルにも属していないことをOracle LOBセグメントが特定のテーブルに属していないか、テーブルがありません

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

を指定しますか?

+0

[関連性がありますか?](https://stackoverflow.com/a/18374462/266304) –

答えて

1

LOBセグメントが孤立している可能性があります。 LOB列がunusedに設定されている場合は、dba_lobsビューからクリーンアップされますが、それでもdba_objectsおよびdba_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セグメントは、ごみ箱にある廃棄されたテーブルに属している可能性があります。同じクエリを使用してテーブルを見つけることができます。

関連する問題