Oracle SQL Developer查看视图源码时自动编译视图如何避免?
解决Oracle SQL Developer自动编译视图的问题
当你在Oracle SQL Developer中查看失效视图的源码时,工具默认会自动执行ALTER VIEW view_name COMPILE来尝试获取最新定义,这就是你遇到的自动编译问题。以下是几种避免该副作用的方法:
关闭自动编译失效对象的全局设置
- 点击顶部菜单栏的
Tools->Preferences - 在左侧导航栏依次展开
Database->Object Viewer - 取消勾选
Automatically compile invalid objects when viewed选项 - 点击
OK保存设置即可禁用该自动行为
- 点击顶部菜单栏的
直接查询数据字典获取源码
无需通过工具的对象视图查看,直接执行SQL查询获取视图定义,完全避免自动编译:-- 当前用户下的视图 SELECT text FROM user_views WHERE view_name = 'VIEW_NAME'; -- 替换为目标视图名,注意Oracle对象名默认大写 -- 其他用户下的视图 SELECT text FROM all_views WHERE owner = 'OWNER_NAME' -- 替换为视图所属用户 AND view_name = 'VIEW_NAME';提前确认视图状态
先查询视图是否失效,再决定是否手动编译:SELECT object_name, status FROM user_objects WHERE object_type = 'VIEW' AND object_name = 'VIEW_NAME';若状态为
INVALID,可先检查依赖对象是否正常,再按需手动执行ALTER VIEW view_name COMPILE。
内容的提问来源于stack exchange,提问作者JustTry
相关产品推荐
相关产品推荐

