swgsw 发表于 2014-4-24 15:58:07

关于dblink访问分区表测试的问题?

oracle dblink 不能用分区查询
参考:http://blog.sina.com.cn/s/blog_90474a920100zuyp.html


测试一步骤如下:

--数据库版本10.2.0.1

--把A库分区表 ic_jsdb 的P2013_1分区导入导入B库的分区ic_jsdb2013的分区表的P2013_1分区下

--A库下查询
select count(*) from ic_jsdb;

14829368

--A库查询P2013_1分区
select count(*) from ic_jsdb partition (P2013_1);

787283

--B库创建了同义词
create synonym sy_ic_jsdb for ic_jsdb@A_to_B;

select count(*) from sy_ic_jsdb partition (P2013_1);

14829368
######


测试二步骤如下:

SQL> select version from v$instance;

VERSION
-----------------
11.2.0.1.0

SQL> select db_link from user_db_links;

DB_LINK
--------------------------------------------------------------------------------
BUSINESS_TO_CNPCFETCH

SQL> create synonym c_ic_jsdb for ic_jsdb@business_to_cnpcfetch;

Synonym created.


SQL> select count(*) from c_ic_jsdb partition;                             

  COUNT(*)
----------
  14832032

SQL> select count(*) from c_ic_jsdb partition(P2013_1);
select count(*) from c_ic_jsdb partition(P2013_1)
                     *
ERROR at line 1:
ORA-14100: partition extended table name cannot refer to a remote object



什么两个版本的结果不一样,而且都不能成功呢?

我的步骤哪里有问题呢,请高人指点迷津!





psufnxk2000 发表于 2014-4-24 22:29:13

这种操作oracle是不支持的。

通过在 远端 为 分区表一个视图 可以解决。
例:在远端
create view v_t_part_p2 as select count(*) a from t_part partition (p2);

然后在本地可以通过
SQL> select * from v_t_part_p2@link_2;

         A
----------
        99
实现
页: [1]
查看完整版本: 关于dblink访问分区表测试的问题?