我刚刚发现我正在运行的其中一个查询不是来自实际的表,而是来自VIEW。
我想在该视图中看到SQL查询。如果我尝试describe
我得到一个对象不存在错误。当我从视图中选择时,我得到了一些数据。
答案 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';