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谢谢!
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谢谢!
解决方案 »
- 麻烦大家推荐一本 经典的oracle olap 开发方面的书籍!谢谢大家
- 编译过程失效提示“PLS-00103 encountered the symbol "OGMPZKFD"”
- oracle中procedure调试正常执行报错
- oracle跟SQL他们的优缺点到底在哪里?
- oracle的用户数量是如何定义的?
- 简单的查询语句问题
- 关于PL/SQL的问题,UTL_FILE.FOPEN方法的问题。
- 关于不同用户之间访问视图问题(急,谢谢)
- 错在哪,简单问题
- 急急,我编写的一个过程的状态为何总是“invalid”啊,在sqlplus里call时总是执行不了,为何?
- pro*c调用存储过程为什么不成功?
- 用DriverManager和DataSource取得一个OracleConnection有什么不同嘛?
分两步看看呢
1. select col1 from (select distinct col1 from pktest@linkname
order by dbms_random.random )where rownum<=2
2. select * from pktest@linkname where col1 in(1步的返回集);