运行如下SQL时没有问题
SELECT ACTION FROM V$SESSION WEHRE AUDSID = USERENV('SESSIONID')
现建立如下存储过程则报错:ORA-00942 表或视图不存在。CREATE OR REPLACE PROCEDURE PRC_COM_SESINFO_GET (
    p_ptruser        OUT      VARCHAR2   --  USERID
) AS
    p_insert_user             VARCHAR2(64);  --  ACTION
BEGIN
    --  取得SESSION信息
    SELECT
        ACTION
    INTO
        p_insert_user
    FROM
        V$SESSION
    WHERE
        AUDSID     =  USERENV('SESSIONID');
    --  生成返回值
    p_ptruser     :=  p_insert_user;
    IF (p_ptruser IS  NULL) THEN
        p_ptruser := 'NONE';
    END IF;
END PRC_COM_SESINFO_GET;
/
请指点!!谢谢

解决方案 »

  1.   

    你的查询语句和过程的建立是在同一个用户下的吗?一般这种情况的出现是由于你当前建立过程的用户没有查询V$SESSION的权限
      

  2.   

    使用DBA用户 然后在sqlplus下赋权for example :sql>conn sys/manager as sysdbasql>grant dba to user_xx --这里给的DBA权限
      

  3.   

    当前建立过程的用户没有查询V$SESSION的权限在数据库后台sys用户下授予grant select on v_$session to yourusername;