今天执行一个 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)