作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Oracle 数据库中,以下各项有什么区别:
alter session set current_schema=<SCHEMA>
alter session set current_user=<USER> --even as sys/system, which is good I suppose
最佳答案
使用 USER
时有一个重要的注意事项需要考虑。来自 PL/SQL 的函数。正如我所拥有的 documented in this blog post , STANDARD.USER()
实现如下:
function USER return varchar2 is
c varchar2(255);
begin
select user into c from sys.dual;
return c;
end;
user
在 SQL 引擎中,这会导致隐藏的 PL/SQL 到 SQL 上下文切换。如果您经常这样做,例如从触发器内部,那么这在生产系统中可能是非常有害的。尽量避免调用
USER()
来自 PL/SQL,并使用
sys_context('USERENV', 'SESSION_USER')
反而。
关于oracle - USER() 和 SYS_CONTEXT ('USERENV' ,'CURRENT_USER' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002746/
在 Oracle 数据库中,以下各项有什么区别: 用户() sys_context('USERENV', 'CURRENT_USER') sys_context('USERENV', 'SESSION
谁能提供一个足够好的共享 Sys_Context 实例,使用 Dbms_Session.Set_Identifier(user_id) 我希望能够在用户成功登录后从不同的连接访问某些系统上下文属性。
使用 Oracle DB 一段时间后,我习惯了使用 Oracle DB Application Context 来实现访问限制。简单地说,在登录时调用一个过程,将用户详细信息放入 Oracle 应用程
我是一名优秀的程序员,十分优秀!