select * from v$transactionselect * from v$session
谢谢。我写好了,请帮我看看是否正确。 select * from v$transaction t inner join v$session s on t.ses_addr = s.saddr and s.audsid = userenv('SESSIONID')
select count(*) from sys.v_$transaction t where t.SES_ADDR=(select b.SADDR from v$session b where b.AUDSID=userenv('sessionid')); 如果大于0就是有session在处理中. 不要在on条件里写 字段=常数的条件,会被忽略.因为on后面是用来写表间关联关系的,对单表的限定要么写子查询做为关联用的表,要么在where条件里加上该条件,以便对join后的数据进行筛选.
SQL> select * from emp;
A ---------- 1 2 4
SQL> select * from emp2;
A ---------- 3
SQL> select a.a aa,b.a ba from emp a left join emp2 b on a.a=1 and a.a=b.a;
AA BA ---------- ---------- 1 2 4
SQL> select a.a aa,b.a ba from emp a left join emp2 b on a.a=b.a;
AA BA ---------- ---------- 1 4 2
SQL> select a.a aa,b.a ba from (select * from emp where a=1) a left join emp2 b on a.a=b.a;
AA BA ---------- ---------- 1
SQL> select a.a aa,b.a ba from emp a left join emp2 b on a.a=1 and a.a=b.a where a.a=1;
select * from v$transaction t inner join v$session s on t.ses_addr = s.saddr and s.audsid = userenv('SESSIONID')
如果大于0就是有session在处理中.
不要在on条件里写 字段=常数的条件,会被忽略.因为on后面是用来写表间关联关系的,对单表的限定要么写子查询做为关联用的表,要么在where条件里加上该条件,以便对join后的数据进行筛选.
A
----------
1
2
4
SQL> select * from emp2;
A
----------
3
SQL> select a.a aa,b.a ba from emp a left join emp2 b on a.a=1 and a.a=b.a;
AA BA
---------- ----------
1
2
4
SQL> select a.a aa,b.a ba from emp a left join emp2 b on a.a=b.a;
AA BA
---------- ----------
1
4
2
SQL> select a.a aa,b.a ba from (select * from emp where a=1) a left join emp2 b on a.a=b.a;
AA BA
---------- ----------
1
SQL> select a.a aa,b.a ba from emp a left join emp2 b on a.a=1 and a.a=b.a where a.a=1;
AA BA
---------- ----------
1
SQL>
见谅.