解决方案 »

  1.   

    如果不是本数据库的表的话,是通过dblink连接的,那么访问该表的时候,就需要加上@dblink名称。drop public database link AAA_LINK ;
    create public database link AAA_LINK connect to username identified by pwd using '(DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 1.5.1.3)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = AAA)
        )
      )';
    验证:
    Select * from config_infos@AAA_LINK;
    如果想把所有子查询当成一个整体使用dblink,
    可以考虑在dblink所连的数据库中将子查询创建个视图view,
    到时候直接访问view@aaa_link就可以
      

  2.   

    没办法直接那样写吧
    可以考虑在当前数据库建立视图或是同义词,间接实现不写@dblink的目的
      

  3.   

    因为这个dblink不是固定的,会根据业务动态选择连接哪个数据库,动态使用已经创建了的dblink,所以我不太想用试图,不然的话要每个dblink都要创建一个视图?
      

  4.   

    用同义词,不过若是远程表中含有大对象字段,如BLOB、CLOB,则DBLINK会不太好使