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

Cách khám phá các cột chính cơ bản (hoặc duy nhất) từ chế độ xem Oracle

Bạn có thể tìm thấy thông tin đó qua chế độ xem user_dependencies:

SQL> CREATE TABLE t_a
  2  (   id number(7)
  3  ,   primary key(id)
  4  )
  5  /

Table created.

SQL> CREATE VIEW v_a AS SELECT * FROM t_a
  2  /

View created.

SQL> select c.constraint_name
  2    from user_dependencies d
  3       , all_constraints c
  4   where d.name = 'V_A'
  5     and d.referenced_type = 'TABLE'
  6     and d.referenced_link_name is null
  7     and d.referenced_owner = c.owner
  8     and d.referenced_name = c.table_name
  9     and c.constraint_type = 'P'
 10  /

CONSTRAINT_NAME
------------------------------
SYS_C0051559

1 row selected.

Trân trọng,
Rob.

CHỈNH SỬA :Đối với các tên cột xem có thể có, bạn có thể sử dụng truy vấn này. Lưu ý rằng không có gì đảm bảo rằng một cột như vậy tồn tại trong chế độ xem của bạn.

SQL> select c.constraint_name
  2       , 'V_' || substr(c.table_name,3) || '.' || cc.column_name possible_view_column
  3    from user_dependencies d
  4       , all_constraints c
  5       , all_cons_columns cc
  6   where d.name = 'V_A'
  7     and d.referenced_type = 'TABLE'
  8     and d.referenced_link_name is null
  9     and d.referenced_owner = c.owner
 10     and d.referenced_name = c.table_name
 11     and c.constraint_type = 'P'
 12     and c.owner = cc.owner
 13     and c.constraint_name = cc.constraint_name
 14  /

CONSTRAINT_NAME                POSSIBLE_VIEW_COLUMN
------------------------------ -------------------------------------------------------------
SYS_C0051561                   V_A.ID

1 row selected.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tham chiếu khóa ngoại đến bảng trong một lược đồ khác

  2. SQL Server tương đương với thu thập hàng loạt trong Oracle

  3. Tạo trình kích hoạt trong Oracle Express

  4. Có cách nào để khắc phục DSRA9010E 'setReadOnly' không được hỗ trợ trên ngoại lệ WebSphere không?

  5. Không thể tạo trình điều khiển từ NHibernate.Driver.OracleDataClientDriver