Oracle 存储过程中报ORA-00942
发布时间:2020-12-12 13:59:31 所属栏目:百科 来源:网络整理
导读:ORA-00942: 表或视图不存在 ORA-06512: 在 "S_DEV.P_GATHER_TABLE_STATS_T",line 74 line 74 EXECUTE IMMEDIATE v_gathertableSQL; v_gathertableSQL这条SQL就是一个简单的insert select,测试一下,把 v_gathertableSQL打印出来单独执行,没有错误。此时我
ORA-00942: 表或视图不存在 ORA-06512: 在 "S_DEV.P_GATHER_TABLE_STATS_T",line 74 line 74 EXECUTE IMMEDIATE v_gathertableSQL; v_gathertableSQL这条SQL就是一个简单的insert select,测试一下,把v_gathertableSQL打印出来单独执行,没有错误。此时我想到一个问题,就是这条SQL有读取dba_objects,dba_views这样的内部视图,应该少了authid current_user。加上之后没有报错了。 由于用户拥有的role权限在存储过程是不可用的。遇到这种情况,我们一般需要显示授权,如grant create table to user;但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程。加入authid current_user时存储过程可以使用role权限。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读