Vì 10g Oracle không bỏ bảng ngay lập tức khi chúng ta đưa ra câu lệnh DROP TABLE. Thay vào đó, nó đổi tên chúng như thế này BIN$IN1vjtqhTEKcWfn9PshHYg==$0
và bỏ chúng vào thùng rác. Điều này cho phép chúng tôi khôi phục các bảng mà chúng tôi không cố ý đánh rơi. Tìm hiểu thêm
.
Các bảng trong thùng rác vẫn là các bảng, vì vậy chúng hiển thị trong ALL_TABLES và các dạng xem tương tự. Vì vậy, nếu bạn chỉ muốn xem các nhận xét chỉ liên quan đến các bảng trực tiếp (không bị loại bỏ), bạn cần lọc theo tên bảng:
select * from all_tab_comments
where substr(table_name,1,4) != 'BIN$'
/
Bạn nói đúng, nó sẽ là không thể tin được. Vì vậy, tôi đã kiểm tra tài liệu, hóa ra Oracle 10g đã thêm một cột có tên DROPPED vào chế độ xem USER_ / ALL_ / DBA_TABLES.
select tc.*
from all_tab_comments tc
join all_tables t
on tc.owner = t.owner
and tc.table_name = t.table_name
where t.dropped = 'NO'
/
Xem tài liệu . Rõ ràng nhu cầu tham gia vào chế độ xem ALL_TABLES đòi hỏi phải nhập nhiều hơn là lọc tên, vì vậy tùy thuộc vào nhu cầu của chúng tôi, có thể dễ dàng hơn để giữ mệnh đề WHERE ban đầu.