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谢谢!