Oracle LOB를 삭제하는 방법
다음 쿼리를 사용하여 사용자의 데이터베이스 개체를 나열할 수 있습니다.
select object_name, object_type from user_objects;
object_type이 LOB인 항목이 몇 개 있습니다.
Oracle에서는 이러한 LOB 개체를 어떻게 삭제할 수 있습니까?
LOB를 확인할 수 있는 시나리오 하나 있습니다.user_objects
그러나 에의 가입.user_lobs
테이블이 이미 떨어졌지만 휴지통에 있는 경우에는 아무것도 찾을 수 없습니다.
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
재활용품 보관함에서 볼 수 있습니다.
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;
위의 단계를 반복하면 입력이 다음 단계에서 수행되었습니다.user_objects
후에drop
.
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 개체가 삭제됩니다.쿼리를 통해 특정 LOB 개체가 지원하는 열을 확인할 수 있습니다.DBA_LOBS
,ALL_LOBS
, 아니면USER_LOBS
당신의 특권에 따라.
예를들면
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
스키마에서 지원하는 개체입니다.
언급URL : https://stackoverflow.com/questions/18367444/how-to-drop-oracle-lob
'programing' 카테고리의 다른 글
C Macro - 정수 값을 문자열 리터럴로 가져오는 방법 (0) | 2023.11.04 |
---|---|
MySQL에서 JOIN 쿼리의 반환 결과를 제한하는 방법 (0) | 2023.11.04 |
오류 ORA-01804 텍스트를 검색하는 중 오류 발생 (0) | 2023.10.30 |
도커 컨테이너에 여러 볼륨을 탑재하시겠습니까? (0) | 2023.10.30 |
CSS에서 @media screen 및 (max-width: 1024px)는 무엇을 의미합니까? (0) | 2023.10.30 |