我刚刚发现我正在运行的查询之一不是来自实际表,而是来自视图。
我想在那个 VIEW 中查看 SQL 查询。如果我尝试describe
我得到一个对象不存在错误。当我从视图中选择时,我得到了一些数据。
要查看视图底层的 SQL,您需要查询数据字典。尝试
select view_name, text from user_views where view_name = 'MY_VIEW';
如果您的用户不拥有该视图,请尝试all_views
;
如果您想查看用于创建视图的实际 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
或者更好的是,单击 SQLDeveloper 左侧连接窗格中的视图。视图打开后,单击 SQL 选项卡以查看其上的基础 SQL。查找视图正在使用的用户/模式
select owner
from all_objects
where object_name='VIEW_NAME' and object_type='VIEW';