我正在使用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_pk
和employee_id_pk
。我想念什么?
答案 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;