我现在以scott启动了两个会话 SYS启动一个
查询V$SESSION结果如下
SQL> select paddr,user#,username,schema#,schemaname from v$session;PADDR USER# USERNAME SCHEMA# SCHEMANAME--------------- ---------- --------------- ---------- ---------------6DA4D1DC 54 SCOTT 54 SCOTT6DA50D3C 0 0 SYS6DA4DDBC 0 0 SYS6DA4EF8C 0 0 SYS6DA4E99C 0 0 SYS6DA4E3AC 0 0 SYS6DA4FB6C 0 SYS 0 SYS6DA4D7CC 0 0 SYS6DA4C5FC 0 0 SYS6DA4CBEC 0 0 SYS6DA4F57C 54 SCOTT 54 SCOTTPADDR USER# USERNAME SCHEMA# SCHEMANAME--------------- ---------- --------------- ---------- ---------------6DA4B42C 0 0 SYS6DA4AE3C 0 0 SYS6DA4A84C 0 0 SYS6DA4A25C 0 0 SYS6DA49C6C 0 0 SYS6DA4967C 0 0 SYS6DA4908C 0 0 SYS6DA48A9C 0 0 SYS6DA484AC 0 0 SYS6DA47EBC 0 0 SYS6DA478CC 0 0 SYS22 rows selected.SQL>
1
这里为什么要设置USER#和SCHEMA#,USERNAME和SCHEMANAME呢?内容是差不多一样的呀。
2
当然,还有一些不一样的地方,就是那些SCHEMANAME为SYS,但USERNAME为空的那些进程,都是些后台进程吗?
(说不定设置USERNAME和SCHEMANAME两个字段的目的就是要区分出这些USERNAME为空的记录哦)
------解决方法--------------------------------------------------------
有区别啊,还是看了你博客里关于user和schema的区别,现在还记得比较深刻
可以试试
alter session set current_schema=XX;
然后再查询
select paddr,user#,username,schema#,schemaname from v$session where schemaname <>username
Oracle内部进程的username为空
------解决方法--------------------------------------------------------
1
这里为什么要设置USER#和SCHEMA#,USERNAME和SCHEMANAME呢?内容是差不多一样的呀。
user# schema#是ID
username schemaname是Name
2
当然,还有一些不一样的地方,就是那些SCHEMANAME为SYS,但USERNAME为空的那些进程,都是些后台进程吗?
(说不定设置USERNAME和SCHEMANAME两个字段的目的就是要区分出这些USERNAME为空的记录哦)
是的,为null的是后天进程