Oracle & MSSql 数据库表映射方法(dblink or other)

一、Oracle

1.在旧库创建公共链接

  命名为 bidblink 

 create public database link bidblink connect to c##v26_xxxx IDENTIFIED BY c##v26_xxxx
using '(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.x.x)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl) ))';

2.在新库查看旧库的 tenant 表

select * from tenant@bidblink

3.映射表

create public synonym tenant for tenant@bidblink;

4.删除映射表

drop public synonym tenant;

 

 

二、MSSql

1、dblink 方法

  创建dblink,语法如下:

--建立外部数据库链接
exec sp_addlinkedserver 
    @server='SPM_Release',--链接服务器别名
    @srvproduct='',
    @provider='SQLOLEDB',
    @datasrc='xx.xx.xx.xx' 
--建立登录映射
exec sp_addlinkedsrvlogin 
    'SPM_Release', --链接服务器别名
    'false',  
    NULL,
    '', --要访问的数据库的用户
    '' --密码

  (注意,没使用默认端口1433的话,需要输入端口号,逗号隔开 @datasrc='xx.xx.xx.xx,xx')

  查询所有dblink(PS:结果为所有数据库链接,如果未添加其他外部链接,则只有一条数据表示当前链接)

select * from sys.servers;

  查询link的表数据,语法如下:

select * from SPM_Release.enpcdb.dbo.psmlb;

  删除dblink

exec sp_droplinkedsrvlogin 'SPM_Release',null
exec sp_dropserver 'SPM_Release'

 

2、OPENDATASOURCE 方法

  在使用这个方法之前,需要执行:

    --有顺序的,授权正序set 1,取消反序set 0,逐步reconfigure
    exec sp_configure 'show advanced options',1; 
    reconfigure;
    exec sp_configure 'Ad Hoc Distributed Queries',1; 
    reconfigure;

  查询语法如:

select * from OPENDATASOURCE(
         'SQLOLEDB',
         'Server=xx.xx.xx.xx;User id=sa;Pwd=xx;Database=xx'
         ).enpcspmp.dbo.enpcdb p

  通过这个方法进行数据库表映射,如果只是简单查询还可以,但是涉及复杂sql,带上链接参数总觉得不友好

  因此,我们可以通过以上select语句,创建一个视图,来简化sql

  至此!!

 

@datasrc='xx.xx.xx.xx'
posted @ 2020-01-15 10:45  wskxy  阅读(219)  评论(0)    收藏  举报