sys as sysdba用户下:
create or replace procedure do_work( p_what in varchar2 )
as
l_redo_size number;
begin
select v$mystat.value-l_redo_size into l_redo_size from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic# and v$statname.name = 'redo size';
end;
/
是正确编译成功的。在我自己的用户test下
SQL>select v$mystat.value from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic# and v$statname.name = 'redo size';
是执行成功的
但是在test下创建过程do_work出现编译错误,不知道是为什么。
create or replace procedure do_work( p_what in varchar2 )
as
l_redo_size number;
begin
select v$mystat.value-l_redo_size into l_redo_size from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic# and v$statname.name = 'redo size';
end;
/
是正确编译成功的。在我自己的用户test下
SQL>select v$mystat.value from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic# and v$statname.name = 'redo size';
是执行成功的
但是在test下创建过程do_work出现编译错误,不知道是为什么。
需要在其原始对象上授权
使用sys授权:
grant select on v_$mystat to test;
grant select on v_$statname to test;
v_$statname和v$statname的呢?
谢谢啦
其它用户看到的是基于视图v_$statname建立的同义词v$statname