Welcome 微信登录

首页 / 数据库 / MySQL / ORA-00942: table or view does not exist

今天执行一个 procedure 突然报错:这个procedure 不合法.这个都执行好几年了的procedure 怎么突然报错,难道什么对象被删除了.如是编辑它,发现报错的语句是这句:
 
select count(1) into cout from dba_tables where table_name = "XXSXX";
 
这个 dba_tables  不是系统自带的视图嘛,怎么会报找不到了.如是向高手们请教,大家给我支招如下方法一 创建 同义词 并授权:
create synonym test.dba_tables for sys.dba_tables;
grant select on test.dba_tables to test;
 
方法二 直接授权
grant select on sys.dba_tables to  test;
或者
grant select any dictionary to test;下面这句是把数据字典的查询权限都赋予指定用户,而上面的授权,需要一个个视图授权了.Oracle用户的策略文件Oracle 的 cursor_sharing参数相关资讯      Oracle错误代码  ORA-00942 
  • Oracle 11g创建虚拟私有目录RMAN-  (05/11/2015 12:26:42)
  • 存储过程中遇到ORA-00942表或视图  (09/12/2014 20:56:31)
  • Oracle物化视图创建报ORA-00942错  (05/29/2013 09:58:42)
  • Oracle错误代码大全  (02/16/2015 21:31:57)
  • ORA-00904/ORA-00942和Oracle 大小  (09/08/2013 19:43:32)
  • Oracle Grid Control OUI-25031错  (03/09/2013 09:01:36)
本文评论 查看全部评论 (0)
表情: 姓名: 字数