SQL-从user_objects数据字典显示对象名称和类型

时间:2018-11-09 10:00:43

标签: sql oracle object

我正在使用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和Employee对象的名称和类型,而不显示department_id_pkemployee_id_pk。我想念什么?

1 个答案:

答案 0 :(得分:1)

如果您使用的是命名标准,并且在索引和视图名称中包含表名称,这将起作用:

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;