加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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权限。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读