一般的数据查询是在一个数据库的一个或多个表进行,如果是查询2个数据库,然后将结果保存在一张TEMPORARY TABLE中,并且在TEMPORARY TABLE 中添加一个字段flgt来区分数据是来自于哪个数据库(2个数据字段差不多,只是命名上有点区别), 请问具体如何实现? 

解决方案 »

  1.   

    创建dblink
    然后就想 访问同一个数据库里的两个不同表类似了
    后面的操作应该知道了吧
    insert into table 
    select t.*,1 flag from table1 t
    union all
    select t1.*,2 from table2 t1
      

  2.   

    使用dblink
    CREATE PUBLIC DATABASE LINK dblink的名字, CONNECT TO 目标库用户名 IDENTIFIED BY 目标库密码
    USING '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=目标库ip)(PORT=1521)))(CONNECT_DATA=(SID=目标库netmanager名字)(SERVER=DEDICATED)))'然后
    select * from table_name@dblink的名字,就跟普通查询一样了
      

  3.   


    --如果两个数据库都是oracle,那么就创建一个DBLINK来访问另一个
    --如果有一个不是oracle,那就配置透明网关来访问(具体方法,Google,不复杂)
    select 1 as DBFlg, ....(其他字段) from table1
    union all
    select 0 as DBFlg, ....(其他字段) from table2@myDBlink
    --PS:其他字段的别名弄成一样的,类型都匹配就OK了