Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để nhận các nhận xét bảng thông qua SQL trong Oracle?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tách chuỗi phân tách nhiều cột bằng dấu chấm phẩy và tạo bản ghi

  2. Bảng lịch trong SQL

  3. Cột cập nhật Oracle LTRIM và RTRIM

  4. Làm cách nào để định dạng các truy vấn tiên tri của tôi để các cột không bị quấn?

  5. Sự khác biệt giữa varchar và varchar2 trong Oracle là gì?