Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak odkryć podstawowe (lub unikalne) kolumny klucza głównego z widoku Oracle?

Informacje te można znaleźć w widoku zależności użytkownika:

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.

Pozdrawiam,
Zbój.

EDYTUJ :W przypadku możliwych nazw kolumn widoku możesz użyć tego zapytania. Pamiętaj, że nie ma gwarancji, że taka kolumna istnieje w Twoim widoku.

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. 46 plików kontrolnych dla programu ładującego SQL

  2. Usuń końcowe zero dziesiętne

  3. Zgodność wersji Oracle Client i ODP.NET

  4. wiersz numer nie wyświetla żadnych wierszy podczas używania między słowem kluczowym

  5. Oracle 10g - optymalizuj GDZIE NIE JEST NULL