获取主键视图列

时间:2012-09-11 14:25:45

标签: oracle

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

先谢谢

1 个答案:

答案 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()等在它上面。

相关问题