如果使用从属表的主键列创建该视图,是否可以检索视图列表以及主键列名称
先谢谢
答案 0 :(得分:1)
要获取当前架构中表的主键约束,可以使用此查询:
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,因此您需要创建自己的函数(or google one)以将LONG转换为VARCHAR,因此您可以使用upper()等在它上面。