を削除する方法を次のクエリは、ユーザーのデータベース・オブジェクトをリストするために使用することができます。OracleのLOB
select object_name, object_type from user_objects;
はOBJECT_TYPEがLOBであるエントリがいくつかあります。
これらのLOBオブジェクトはどのようにOracleで削除できますか?
を削除する方法を次のクエリは、ユーザーのデータベース・オブジェクトをリストするために使用することができます。OracleのLOB
select object_name, object_type from user_objects;
はOBJECT_TYPEがLOBであるエントリがいくつかあります。
これらのLOBオブジェクトはどのようにOracleで削除できますか?
LOBがuser_objects
にありますが、user_lobs
への結合では、テーブルがすでに破棄されている場合は何も見つかりませんが、is in the recycle binのシナリオがあります。
create table t42 (my_clob clob);
table T42 created.
予想したように、ジャスティンのクエリはあなたの列を示しています。
select l.table_name,
l.column_name,
l.segment_name lob_name
from user_lobs l
join user_objects o
on(o.object_name = l.segment_name);
TABLE_NAME COLUMN_NAME LOB_NAME
----------- ----------- ------------------------------
T42 MY_CLOB SYS_LOB0000133310C00001$$
drop table t42;
table T42 dropped.
を今すぐジャスティンのクエリは何も見つけられません:
select l.table_name,
l.column_name,
l.segment_name lob_name
from user_lobs l
join user_objects o
on(o.object_name = l.segment_name);
no rows selected
をしかし、それはuser_objects
ではまだです:
select object_name, object_type, status from user_objects
where object_type like 'LOB%';
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ------------------- -------
SYS_LOB0000133328C00001$$ LOB VALID
A NDあなたはごみ箱でそれを見ることができます:
select * from user_recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME DROPSCN PARTITION_NAME CAN_UNDROP CAN_PURGE RELATED BASE_OBJECT PURGE_OBJECT SPACE
------------------------------ -------------------------------- --------- ------------------------- ------------------------------ ------------------- ------------------- ---------- -------------------------------- ---------- --------- ---------- ----------- ------------ ----------
SYS_IL0000133310C00001$$ SYS_IL0000133310C00001$$ DROP LOB INDEX USERS 2013-08-22:08:33:21 2013-08-22:08:33:21 1.0E+13 NO NO 133310 133310 133310 0
SYS_LOB0000133310C00001$$ SYS_LOB0000133310C00001$$ DROP LOB USERS 2013-08-22:08:33:21 2013-08-22:08:33:21 1.0E+13 NO NO 133310 133310 133310 0
BIN$5IUNXtWkUXLgQwEAAH9TlQ==$0 T42 DROP TABLE USERS 2013-08-22:08:33:21 2013-08-22:08:33:21 1.0E+13 YES YES 133310 133310 133310 0
LOBはまだディスク上に存在していると私はあなたが心配しているものだと思いストレージを、使用しています。あなたはLOBセグメントに名前を付ける場合は、この効果が表示されていない
purge table t42;
table purged.
select object_name, object_type, status from user_objects
where object_type like 'LOB%';
no rows selected
興味深いことに
:だから一種のあなたがテーブル全体を消去する必要が本当にLOBをドロップし、そのストレージを解放するために、あなたの質問に答えるために:上記の手順を繰り返し
create table t42 (my_clob clob)
lob (my_clob) store as my_clob_segment;
、エントリがdrop
後user_objects
から行ってきました。
drop table t42;
table T42 dropped.
select object_name, object_type, status from user_objects
where object_type like 'LOB%';
no rows selected
select * from user_recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME DROPSCN PARTITION_NAME CAN_UNDROP CAN_PURGE RELATED BASE_OBJECT PURGE_OBJECT SPACE
------------------------------ -------------------------------- --------- ------------------------- ------------------------------ ------------------- ------------------- ---------- -------------------------------- ---------- --------- ---------- ----------- ------------ ----------
BIN$5IUNXtWnUXLgQwEAAH9TlQ==$0 MY_CLOB_SEGMENT DROP LOB USERS 2013-08-22:08:36:41 2013-08-22:08:36:41 1.0E+13 NO NO 133316 133316 133316 0
BIN$5IUNXtWoUXLgQwEAAH9TlQ==$0 T42 DROP TABLE USERS 2013-08-22:08:36:41 2013-08-22:08:36:41 1.0E+13 YES YES 133316 133316 133316 0
SYS_IL0000133316C00001$$ SYS_IL0000133316C00001$$ DROP LOB INDEX USERS 2013-08-22:08:36:41 2013-08-22:08:36:41 1.0E+13 NO NO 133316 133316 133316 0
ストレージはまだ、もちろん使用されている、あなたはまだそれを解放するために削除する必要があり、それだけで、データ・ディクショナリにもう少し一貫見えます。だから、これは(非常にマイナーな)バグのように見えるかもしれません。サポートノート394442.1で言及されている動作に関連している可能性があります。
関連するLOB列を含む表を削除するか、またはその表からLOB列を削除すると、LOBオブジェクトは削除されます。特権に応じて、DBA_LOBS
、ALL_LOBS
、またはUSER_LOBS
を照会することによって、特定のLOBオブジェクトがサポートする列を確認できます。
SELECT l.table_name,
l.column_name,
l.segment_name lob_name
FROM user_lobs l
JOIN user_objects o
ON(o.object_name = l.segment_name)
例えば
はあなたにどのようなテーブルと何列スキーマのサポートでLOB
の各オブジェクトが表示されます。
詳細な説明およびサンプル問合せありがとう – byneri
+1。非常に素晴らしい。簡潔な(そして判読可能な)答えをありがとう! – spencer7593