触发器想要实现根据不同登陆用户名启用不同操作,请问能否实现?
解决方案 »
- oracle 中如何在drop table之前先判断此表是否已存在,若存在,则删除
- 问一个update语句,大家帮帮忙啊。
- oracle数据导出到excel中的问题
- ora 12170 连接超时 plsql正常登录
- 请教sql语句。
- 有一个表里有二进制文件,用exp导出有问题,怎么办?
- 不安装Oracle 客户端,可不可以 用 MS ODBC for Oracle 连接到远端的Oracle服务器?
- RedHat9下安装Oracle9i又遇到新问题,请教各位!
- 有谁知道怎么获得当前日期是星期几?
- 急:事务提交,居然后面的执行成功,前面的没有执行。
- 急!游标能和动态SQL一起使用吗~~?
- 关于v$session视图的访问权限????
取用户名:select SYS_CONTEXT('USERENV','SESSION_USER') from dual;select SYS_CONTEXT('USERENV','CURRENT_USER') from dual;select user from dual;取登录的机器名:
select SYS_CONTEXT('USERENV','HOST') from dual;
IP地址:select SYS_CONTEXT('USERENV','IP_ADDRESS') from dual;
不过 如果你要用SYS_CONTEXT 你的数据库必须是8i以上
如
if .... then ....if后面怎么写?????
....
select user into username from dual;
if username=.... then ....
....
END;
select UPPER(PROGRAM)
from v$session,
(select SYS_CONTEXT('USERENV', 'SESSIONID') AS SESSIONID
from Dual) DUAL
WHERE v$session.AUDSID = DUAL.SESSIONID
这句在pl/sql中可以执行,但到了触发器中就不能执行,提示Compilation errors for TRIGGER RUN11.T11111111111Error: PL/SQL: ORA-00942: table or view does not exist
Line: 153
Text: from v$session,why??????????????/
但是我用sql语句查询就能直接访问v$session,用触发器为什么不行呀?
刚才用sys登陆,授权了一下(试图v$session).结果就可以了.
但是我用sql语句查询就能直接访问v$session,用触发器为什么不行呀?why?
在PLSQL中,对于SYS用户的表、视图和其他资源的引用,必须显式授权。