查询视图代码(定义)

时间:2015-12-10 17:01:31

标签: database oracle view

我试图在代码中找到一些有评论的观点! - (类似'--TO DO'),但问题是我不知道视图名称并且手动查看每个会花费我很多时间(我有超过2k的视图)。 所以我试图创建一个查询,在视图的代码中搜索感兴趣的文本。

我设法得到了这样的东西:

SELECT *
 FROM ALL_SOURCE
 WHERE UPPER(text) LIKE UPPER('%my_text_here%')
ORDER BY name desc

但这不会查询我的观点。它查询函数,程序,包,触发器...除了视图之外几乎所有东西......我觉得很奇怪。 起初我以为可能没有包含该关键字的视图所以我改为一些我知道肯定存在的基本SQL关键字......但仍然没有结果。

任何人都可以告诉我我错过了什么/做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

视图存储在all_views(同时:dba_viewsuser_views,具体取决于您的访问权限和需求。但是,all_views中的文本列很长,这意味着您首先必须将其转换为Clob才能在查询中使用它。最简单的解决方法(from Tom Kyte)是在模式中创建一个新表,并将Longs转换为Clobs,如下所示:

create table myviews as 
select  owner, view_name, to_lob(text) as text from all_views;

然后从您自己的表中选择:

select * 
  from myviews
  where upper(text) like upper('%my_text_here%') 
order by view_name desc;