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'

浙公网安备 33010602011771号