A 库中 有 table1 的id
B 库中 有 table2 的idselect * from A.id, B.id
where A.id = B.id我写的SQL能够执行,也是我要的结果,但是DBA坚决不同意跨库直接连接,怎么处理?
怎么处理??

解决方案 »

  1.   

    用dblink吧,比较方便,如果跨数据库需要考虑写应用程序实现
    dblink的创建使用:
    1.创建dblink语法:
    CREATE [PUBLIC] DATABASE LINK link 
    CONNECT TO username IDENTIFIED BY password
    USING ‘connectstring’
    例子:
    create database link link_tgwms_histdb connect to usernameidentified by password
    using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.215.13)(PORT = 1521)) 

    (CONNECT_DATA = 
    (SERVICE_NAME = histdb)
     ) 
     )';2.查看已创建的dblink
    select owner,object_name from dba_objects where object_type='DATABASE LINK';3.dblink的引用:
    [user.]table|view@dblink
    如:
    SELECT * FROM worker@zrhs_link;
    SELECT * FROM camel.worker@zrhs_link ; 
      

  2.   

    你们 DBA 是不允许跨库操作,还是不允许跨库直接对表操作?
      

  3.   

    物化视图。mysql你就自己建立一套方案形成物化视图
      

  4.   

    B库导出固定格式数据文件,A库用这个文件做外部表,这回总行了吧问题你们DBA是干神马吃的,这个不行那个不行倒没问题,他给个方案啊,当DBA就是摇头的?
      

  5.   

    跨库,这个库的意思是schema,大家似乎也有点误解了。