1

如果该视图是使用依赖表的主键列创建的,是否可以检索视图列表以及主键列名称?

例如:

Employee(ID PRIMARY KEY, FIRST NAME, LAST NAME, SALARY, DEPARTMENT) 

从 Employee 表派生的视图:

EMPLOYEEVIEW(ID, FIRST NAME, LAST NAME)

EMPLOYEEVIEW满足我的约束。我需要获得这些观点。期望的结果类似于EMPLOYEEVIEW ID.

4

1 回答 1

2

要获取当前模式中表的主键约束,可以使用以下查询:

select *
from   user_constraints
where  constraint_type = 'P'

所以要在你的视图中搜索主键,我会使用这样的查询

select *
from   user_views v
join   user_constraints c on upper(v.text) like '%'||c.table_name||'%'
where  c.constraint_type = 'P'
and    v.view_name = 'YOUR_VIEW_NAME'

不幸的是,user_views 视图中的文本字段是可怕的 LONG 数据类型,因此您需要创建自己的函数(或谷歌函数)来将 LONG 转换为 VARCHAR,因此您可以使用 upper() 并喜欢它。

于 2012-09-11T22:08:52.673 回答