ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Server通过dblink访问Oracle数据

SQL Server通过dblink访问Oracle数据

原创 Linux操作系统 作者:hky87 时间:2013-01-18 15:16:35 0 删除 编辑
Exec sp_droplinkedsrvlogin ORACLE_demo,Null

Exec sp_dropserver ORACLE_demo

go

EXEC sp_addlinkedserver

        @server ='ORACLE_demo', --要创建的链接服务器别名

        @srvproduct='Oracle', --产品名称    

@provider='MSDAORA', --OLE DB 字符

@datasrc='tnsTest'   --数据源 oracle"ora92"network"admin"tnsnames.ora 查看

EXEC sp_addlinkedsrvlogin

     'ORACLE_demo', --已建立的链接服务器名

     'false', -- 固定 */

     NULL, --为每个登陆SQL SERVER的用户使用此链接服务器,否则写用户名 */

     '用户名',

     '密码'
go

查询:
SELECT *
FROM OPENQUERY(ORACLE_demo, 'SELECT * FROM table_name')

参考以下内容完成:

SQLSERVER中的DBLink

/////////////////////////////SQL SERVER////////////////////////////

Exec sp_droplinkedsrvlogin DBVIP,Null

Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver

      @server='DBVIP',--被访问的服务器别名

      @srvproduct='',

      @provider='SQLOLEDB',

      @datasrc='Server2'   --要访问的服务器

EXEC sp_addlinkedsrvlogin

     'DBVIP', --被访问的服务器别名

     'false',

     NULL,

     'sa', --帐号

     'thankyoubobby' --密码

Select   *   from DBVIP.pubs.dbo.orders  

/////////////////////////////ORACLE////////////////////////////

需要SQL SERVER服务器中安装ORACLE客户端;

Exec sp_droplinkedsrvlogin demo,Null

Exec sp_dropserver demo

go

EXEC sp_addlinkedserver

        @server ='demo', --要创建的链接服务器别名

        @srvproduct='Oracle', --产品名称    

@provider='MSDAORA', --OLE DB 字符

@datasrc='ServiceName'   --数据源 oracle"ora92"network"admin"tnsnames.ora 查看

EXEC sp_addlinkedsrvlogin

     'demo', --已建立的链接服务器名

     'false', -- 固定 */

     NULL, --为每个登陆SQL SERVER的用户使用此链接服务器,否则写用户名 */

     'userid', --帐号

     'password' –密码

go

SELECT * FROM demo.. USERID.TABLE

--注意用大写,因为在Oracle的数据字典中为大写

数据库的格式必须是链接服务器名..ORACLE用户名.表名.

SELECT * FROM OPENQUERY(demo ,'select * from tbdemo' )

UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')

SET name = 'hello';

INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')

VALUES ('hello');

DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name = ''hello''');

如此则在SQL SERVER中就可以访问ORACLE的数据了。

建立的链接服务器可以在企业管理器中看见.

/////////////////////////////ACCESS////////////////////////////

--建立连接服务器

EXEC sp_addlinkedserver

'ai',             --要创建的链接服务器名称

‘access',     --产品名称   

'Microsoft.Jet.OLEDB.4.0', --OLE DB 字符

'd:"testdb"db.mdb' --数据源 -- 盘符:"路径"文件名 -- ""网络名"共享名"文件名 (网络版本)

GO

--创建链接服务器上远程登录之间的映射

--链接服务器默认设置为用登陆的上下文进行

--现在我们修改为连接链接服务器不需使用任何登录或密码

exec sp_addlinkedsrvlogin 'ai','false'

go

select * from ai...mytable

/////////////////////////////EXCEL////////////////////////////

--建立连接服务器

EXEC sp_addlinkedserver

'ai_ex',            --要创建的链接服务器名称

'ex',     --产品名称        

'Microsoft.Jet.OLEDB.4.0', --OLE DB 字符

'd:"testdb"mybook.xls' , --数据源 -- 盘符:"路径"文件名-- ""网络名"共享名"文件名 (网络版本)

null,

'Excel 5.0' --OLE DB 提供程序特定的连接字符串

GO

----创建链接服务器上远程登录之间的映射

--链接服务器默认设置为用登陆的上下文进行

--现在我们修改为连接链接服务器不需使用任何登录或密码

exec sp_addlinkedsrvlogin 'ai_ex','false'

go

--查询数据

select * from ai_ex...sheet3$

/////////////////////////////MS SQL////////////////////////////

--建立连接服务器

EXEC sp_addlinkedserver

'ai_mssql',        --要创建的链接服务器名称      

'ms',     --产品名称

'SQLOLEDB', --OLE DB 字符

'218.204.111.111,3342' --数据源

GO

--创建链接服务器上远程登录之间的映射

EXEC sp_addlinkedsrvlogin

'ai_mssql',

'false',

NULL,

'zhangzhe', --远程服务器的登陆用户名

'fish2231' --远程服务器的登陆密码

go

--查询数据

select * from ai_mssql.pubs.dbo.jobs

--还有一个更简单的办法

--这种方式在链接服务器建立后,它是默认开放RPC的

--建立连接服务器

EXEC sp_addlinkedserver

'218.204.111.111,3342', --要创建的链接服务器名称

'SQL Server' --这里就用数据源作名称

GO

--创建链接服务器上远程登录之间的映射

EXEC sp_addlinkedsrvlogin

'218.204.111.111,3342',

'false',

NULL,

'zhangzhe', --远程服务器的登陆用户名

'fish2231' --远程服务器的登陆密码

go

--查询数据

select * from [218.204.253.131,3342].pubs.dbo.jobs

go




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10314474/viewspace-752879/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-09

  • 博文量
    87
  • 访问量
    345410