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

Làm thế nào để liệt kê tất cả các bảng trong Oracle

Như với hầu hết các cơ sở dữ liệu quan hệ, có thể xảy ra tình huống bạn cần xem siêu dữ liệu cơ bản và xem qua danh sách bảng thực tế và quyền sở hữu cơ sở dữ liệu của bạn. Rất may, có nhiều cách để thực hiện tác vụ tương đối đơn giản này trong Oracle, vì vậy chúng tôi sẽ khám phá ngắn gọn từng tùy chọn bên dưới để tìm tùy chọn phù hợp nhất với nhu cầu của bạn.

Từ điển Dữ liệu Oracle là gì?

Từ điển dữ liệu trong Oracle là một tập hợp các bảng chỉ đọc cung cấp thông tin hữu ích về cơ sở dữ liệu bao gồm lược đồ, người dùng, đặc quyền và thậm chí cả dữ liệu kiểm tra. Các giá trị trong các từ điển được lưu trữ này được Oracle cập nhật tự động bất cứ khi nào một câu lệnh được thực thi trên máy chủ sửa đổi dữ liệu.

Từ đó, các từ điển chỉ đọc có thể được đọc và truy vấn giống như bất kỳ bảng tiêu chuẩn nào, như chúng ta sẽ thấy bên dưới cung cấp một số chức năng rất hữu ích.

Xem bảng do người dùng hiện tại sở hữu

Ở cấp độ cơ bản nhất, bạn có thể muốn xem danh sách tất cả các bảng được sở hữu bởi người dùng Oracle hiện tại. Điều này có thể được thực hiện với một SELECT đơn giản truy vấn trên USER_TABLES từ điển dữ liệu.

Sau khi kết nối với Oracle, hãy phát hành câu lệnh này:

SELECT
  table_name, owner
FROM
  user_tables
ORDER BY
  owner, table_name

Thao tác này sẽ trả về danh sách tất cả các bảng mà người dùng hiện tại là chủ sở hữu, như được chỉ định trong owner cột.

Xem bảng mà Người dùng hiện tại có thể truy cập

Trong tình huống bạn chỉ quan tâm đến những bảng nào mà người dùng Oracle hiện tại có quyền truy cập để, bất kể quyền sở hữu, bạn sẽ sử dụng ALL_TABLES từ điển dữ liệu thay thế.

SELECT
  table_name, owner
FROM
  all_tables
ORDER BY
  owner, table_name

Có khả năng là truy vấn này sẽ trả lại nhiều kết quả hơn những gì bạn quan tâm vì bạn đang xem mọi thứ thậm chí người dùng có thể truy cập từ xa, vì vậy bạn có thể muốn giới hạn truy vấn của mình bằng cách chỉ định một owner thích hợp , như vậy:

SELECT
  table_name, owner
FROM
  all_tables
WHERE
  owner='schema_name'
ORDER BY
  owner, table_name

Xem tất cả các bảng

Cuối cùng, khi bạn thực sự cần xem mọi bảng trong hệ thống, không tìm đâu xa hơn DBA_TABLES tuyệt vời và mạnh mẽ từ điển dữ liệu.

SELECT
  table_name, owner
FROM
  dba_tables
WHERE
  owner='schema_name'
ORDER BY
  owner, table_name

Điều quan trọng cần lưu ý là DBA_TABLES cuối cùng này từ điển có thể yêu cầu đặc quyền của người dùng ngoài những gì người dùng hiện tại có. Nếu cần, bạn có thể cần được cấp SELECT ANY DICTIONARY đặc quyền hoặc SELECT_CATALOG_ROLE vai diễn. Có thể tìm thấy thêm thông tin về việc cấp các đặc quyền này trong tài liệu chính thức.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Nếu bảng tồn tại

  2. <> Có nghĩa là gì trong Oracle

  3. 12c Data Redaction

  4. SQL Server Clustering từ Oracle RAC Perspective

  5. Hàm JSON_OBJECT () trong Oracle