PL/SQL,創建procedure或function時,提示V$視圖不存在。

用戶可以在sql中查詢V$視圖,但是創建procedure或function時,提示V$視圖不存在。

SQL> create function get_stat_val
  2  (
  3    p_name in varchar2
  4  ) return number
  5  as
  6    v_value number;
  7  begin
  8    select m.value into v_value from v$mystat m,v$statname s
  9    where m.statistic#=s.STATISTIC#
 10    and s.name=p_name;
 11    return v_value;
 12  end;
 13  /
 
Warning: Function created with compilation errors
 
SQL> sho err
Errors for FUNCTION WEBCUS.GET_STAT_VAL:
 
LINE/COL ERROR
-------- -----------------------------------------------
8/47     PL/SQL: ORA-00942: table or view does not exist
8/3      PL/SQL: SQL Statement ignored

查詢用戶的具有的角色,具有DBA角色

SQL> select * from dba_role_privs where grantee='WEBCUS';
 
GRANTEE    GRANTED_RO ADMIN_OPTION DEFAULT_ROLE
---------- ---------- ------------ ------------
WEBCUS     DBA        NO           YES
為用戶授予V$視圖的select權限

SQL> grant select on v$mystat to webcus;
grant select on v$mystat to webcus
                *
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
v$开头的视图是v_$的同义词,对以v$开头的视图,不能直接grant。

http://blog.csdn.net/wh62592855/article/details/4844522

SQL> grant select on v_$mystat to webcus;

Grant succeeded.

SQL> grant select on v_$statname to webcus;

Grant succeeded.

重啟創建function
SQL> create function get_stat_val
  2  (
  3    p_name in varchar2
  4  ) return number
  5  as
  6    v_value number;
  7  begin
  8    select m.value into v_value from v$mystat m,v$statname s
  9    where m.statistic#=s.STATISTIC#
 10    and s.name=p_name;
 11    return v_value;
 12  end;
 13  /
 
Function created
 
SQL> select get_stat_val('redo size') from dual;
 
GET_STAT_VAL('REDOSIZE')
------------------------
                  108944
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值