触发器中 下列语句提示 在  from v$session  处
提示错误
Error: PL/SQL: ORA-00942: table or view does not exist
Text: from v$session 
----------------------------------------------
 IF INSERTING OR UPDATING THEN
  SELECT OSUSER || '@' || MACHINE,
    PROGRAM,
    SYSDATE
   INTO
    :NEW.LastModifyHostName,
    :NEW.LastModifyProgram,
    :NEW.LastModifyDate
        from v$session
   WHERE AUDSID = (SELECT SYS_CONTEXT('USERENV','SESSIONID') FROM dual);
 END IF;
------------------------------------------------
 
 
单独执行 
  SELECT OSUSER || '@' || MACHINE,
    PROGRAM,
    SYSDATE
        from v$session
没有问题啊 

解决方案 »

  1.   

    权限问题,当前用户是如何获得select any dictionary权限的
      

  2.   

    楼上的,我不是太懂这个。 
    我登录 PLSql 用的 假设是 abc 这个用户。 
    那么 在我这个用户下 直接调用 
      SELECT OSUSER  ¦ ¦ '@'  ¦ ¦ MACHINE, 
        PROGRAM, 
        SYSDATE 
            from v$session
    没有问题 但是还是这个用户 编辑触发器,就不行了。
    以我的水平也就能把问题说到这份儿上了。呜呜
      

  3.   

    我试试 给用户 
     select any dictionary  权限
    希望能解决。  
     
      

  4.   

    老问题了,对于过程中的select语句,被访问对象必须直接地,显示地赋予权限(除非是object owner),
    例如没有查询v$session的权限,那么就
    grant select on sys.v$session to  user;