SQL - отображение имен и типов объектов из словаря данных user_objects - PullRequest
0 голосов
/ 09 ноября 2018

Я использую Oracle. Я пытаюсь просмотреть таблицу, которая выглядит следующим образом

OBJECT_NAME         OBJECT_TYPE
-----------------   -----------
DEPARTMENT          TABLE
DEPARTMENT_ID_PK    INDEX
EMPLOYEE            TABLE
EMPLOYEE_ID_PK      INDEX

И это то, что у меня есть

SELECT OBJECT_NAME, OBJECT_TYPE
FROM USER_OBJECTS
WHERE OBJECT_NAME IN ('EMPLOYEE', 'DEPARTMENT');

Но в печатной таблице указаны только имена и типы объектов «Отдел» и «Сотрудник», а не department_id_pk и employee_id_pk. Чего мне не хватает?

1 Ответ

0 голосов
/ 09 ноября 2018

Это будет работать, если вы используете стандарты именования и включаете имя таблицы в индекс и имена представлений:

select
     object_name,
     object_type
from
     user_objects
where
     (object_name like '%EMPLOYEE%') 
OR   (object_name like '%DEPARTMENT%');

Если такие стандарты не соблюдаются, вы можете использовать,

select 
    b.uniqueness, 
    a.index_name, 
    a.table_name, 
    a.column_name 
  from 
    user_ind_columns a, 
    user_indexes b 
where 
    a.index_name=b.index_name 
  and 
     ((object_name like '%EMPLOYEE%') or (object_name like '%DEPARTMENT%'))
order by 
    a.table_name, 
    a.index_name, 
    a.column_position;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...