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

Làm cách nào để tìm CHỦ SỞ HỮU của một đối tượng trong Oracle?

Bạn có thể truy vấn chế độ xem ALL_OBJECTS:

select owner
     , object_name
     , object_type
  from ALL_OBJECTS
 where object_name = 'FOO'

Để tìm từ đồng nghĩa:

select *
  from ALL_SYNONYMS
 where synonym_name = 'FOO'

Chỉ để làm rõ, nếu một người dùng Câu lệnh SQL của người dùng tham chiếu đến tên đối tượng không có đủ điều kiện về lược đồ (ví dụ:'FOO'), Oracle FIRST kiểm tra lược đồ của người dùng để tìm đối tượng có tên đó (bao gồm các từ đồng nghĩa trong lược đồ của người dùng đó). Nếu Oracle không thể giải quyết tham chiếu từ lược đồ của người dùng, thì Oracle sẽ kiểm tra một từ đồng nghĩa công khai.

Nếu bạn đang tìm kiếm cụ thể các ràng buộc trên một table_name cụ thể:

select c.*
  from all_constraints c 
 where c.table_name = 'FOO'
 union all
select cs.*
  from all_constraints cs
  join all_synonyms s 
    on (s.table_name = cs.table_name
     and s.table_owner = cs.owner 
     and s.synonym_name = 'FOO'
       )

HTH

- phụ lục:

Nếu người dùng của bạn được cấp quyền truy cập vào các chế độ xem DBA_ (ví dụ:nếu người dùng của bạn đã được cấp SELECT_CATALOG_ROLE), bạn có thể thay thế 'DBA_ 'thay cho' ALL_ 'trong các ví dụ SQL trước. ALL_x chế độ xem chỉ hiển thị các đối tượng mà bạn đã được cấp đặc quyền. DBA_x chế độ xem sẽ hiển thị tất cả các đối tượng cơ sở dữ liệu, cho dù bạn có đặc quyền đối với chúng hay không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thao tác bộ sưu tập

  2. Bế tắc trong Oracle

  3. Lỗi truy vấn Oracle

  4. Làm thế nào để sử dụng XPath với một biến trong Oracle XMLTable?

  5. Làm cách nào để lấy sự kiện tiếp theo khi giá trị thay đổi?