讲解这个问题,首先需要理解connection与session的相关概念,数据库是服务是运行在DEDICATED这个模式下,概念解释如下
connection:这个是客户端与oracle数据库服务端的连接,这个过程是输入用户名和密码的登陆过程。
sessioon:表示为已登陆的数据库用户和数据库交互的过程。
当理解这两个概念特别在pl/sql develop这个开发环境中特别有用,因为经常有人弄错,为什么每建立一个sql窗口或者command窗口,都会新建一个session.
以下是对上面这段话进行举例,这个是查询用户的后台跟踪文件例子
select param.VALUE || '/' || i.INSTANCE_NAME || '_ora_' || p.SPID
from v$session s, v$process p, v$parameter param, v$instance i
where s.PADDR = p.ADDR
and s.AUDSID = userenv('sessionid')
and param.NAME = 'user_dump_dest'
在不同的窗口dump,那么运行这条sql语句的运行窗口也不同。
如果你在A窗口运行alter system dump datafile 20 block 9 这条命令,接着你跑去B窗口运行如上查询用户的后台跟踪文件的sql语句,那么肯定得不到正确结果.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21107715/viewspace-591776/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21107715/viewspace-591776/