6

我刚刚发现我正在运行的查询之一不是来自实际表,而是来自视图。

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

4

3 回答 3

7

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

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

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

于 2012-10-01T19:55:42.423 回答
2

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

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

如果您需要,还有更多选择。

如果你只想像往常一样描述它。如果这不起作用,则说明您使用了错误的架构或对象不存在:

DESC MY_VIEW

如果您使用的架构不正确,您可以使用:

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

或者

DESC MY_SCHEMA.MY_VIEW
于 2012-10-01T19:51:40.633 回答
0

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

select owner 
   from all_objects 
   where object_name='VIEW_NAME' and object_type='VIEW';
于 2012-10-01T20:17:22.383 回答