什么是SQLPlus命令来查看VIEW语句?

时间:2012-10-01 19:41:40

标签: sql oracle

我刚刚发现我正在运行的其中一个查询不是来自实际的表,而是来自VIEW。

我想在该视图中看到SQL查询。如果我尝试describe我得到一个对象不存在错误。当我从视图中选择时,我得到了一些数据。

3 个答案:

答案 0 :(得分:5)

要查看视图的基础SQL,您需要查询数据字典。尝试

select view_name, text from user_views where view_name = 'MY_VIEW';

如果您的用户不拥有该视图,请尝试all_views;

答案 1 :(得分:2)

如果您想查看用于创建视图的实际SQL,可以使用函数dbms_metadata.get_ddl,它返回一个clob:

select dbms_metadata.get_ddl ( 'VIEW'
                             , 'MY_VIEW' -- view name
                                )
  from dual

如果您需要,还有其他一些选择。

如果你想像往常一样describe。如果这不起作用,则表示您的模式错误或对象不存在:

DESC MY_VIEW

如果您使用的是错误的架构,可以使用:

select dbms_metadata.get_ddl ( 'VIEW'
                             , 'MY_VIEW', -- view name
                             , 'MY_SCHEMA'
                                )
  from dual

DESC MY_SCHEMA.MY_VIEW

答案 2 :(得分:0)

或者更好的是,单击SQLDeveloper左侧连接窗格中的视图。打开视图后,单击SQL选项卡以查看其上的基础SQL。查找视图正在使用的用户/架构

select owner 
   from all_objects 
   where object_name='VIEW_NAME' and object_type='VIEW';