dblink 下关于in的一个问题
ppwf 2006-01-24 09:07:03 1.建立dblin(连接到自身):
CREATE DATABASE LINK linkname CONNECT TO system IDENTIFIED BY pass USING '(DESCRIPTION=(ADDRESS=
(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=myoracle)))';
2-1.在表pktest中随机选择指定列 col1 distinct 值中的2个
select col1 from (select distinct col1 from pktest@linkname order by dbms_random.random )where rownum<=2;
2-2。同上 没有dblink
select col1 from (select distinct col1 from pktest order by dbms_random.random )where rownum<=2;
3-1。pktest中选出col1的值满足步骤2的所有行
select * from pktest@linkname where col1 in( select col1 from (select distinct col1 from pktest@linkname
order by dbms_random.random )where rownum<=2);
3-2。同上 没有dblink
select * from pktest where col1 in( select col1 from (select distinct col1 from pktest order by
dbms_random.random )where rownum<=2);
pktest:
COL1 COL2
---------- ----------
1 2
2 2
3 2
4 3
2 2
4 2
在同一session中上述sql一次执行的结果为:
2-1:
COL1
----------
2
4
已选择2行。
2-2:
COL1
----------
3
4
已选择2行。
3-1:(error:至少两行,且col1中的distinct值数目为2)
COL1 COL2
---------- ----------
1 2
已选择 1 行。
3-2:
COL1 COL2
---------- ----------
3 2
4 3
4 2
已选择3行。
多次执行的结果表明:步骤2的执行效果是一样。
然而步骤3使用dblink时不能正确执行,是in的问题吗?
版本:9.2.0.1.1
谢谢!