SQL SERVER连接oracle数据库几种方法
--1 方式
--查询oracle数据库中的表
SELECT *FROM OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160User ID=DAIMINPassword=DAIMIN'
)..DAIMIN.JOBS
--在sqlserver中创建与oracle数据库中的表同名的表
select * into JOBS fromOPENDATASOURCE(
'MSDAORA',
'Data Source=GE160User
ID=daiminPassword=daimin'
)..DAIMIN.JOBS
select * from JOBS
--2、方式
--在master数据库中查看已经存在的链接服务器
select * from sysserversEXEC sp_addlinkedserver
@server = 'GE160',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'GE160'
exec sp_addlinkedsrvlogin 'GE160', false, 'sa', 'daimin', 'daimin'
--要在企业管理器内指定登录帐号
exec sp_dropserver GE160select * from GE160..DAIMIN.JOBS
delete from GE160..DAIMIN.JOBS
--备注:引用ORACLE服务器上的表时,用户名称与表名一定要大写字母。
SELECT *FROM OPENQUERY(GE160, 'SELECT * FROM DAIMIN.JOBS')
--3、方式
SELECT a.*FROM OPENROWSET('MSDAORA',
'GE160''DAIMIN''DAIMIN',
DAIMIN.JOBS) AS a
ORDER BY a.JOB_ID
--4、方式 ODBC
--ODBC方式比较好办
SELECT A.*FROM
OPENROWSET('MSDAORA','GE160''DAIMIN''DAIMIN', --GE160是数据源名
DAIMIN.JOBS) AS
A
ORDER BY A.JOB_ID
配置好相关的文件就可以,一般是tnsname.ora文件。一般oracle10g的文件所在目录为:C:\oracle\product\10.2.0\db_1\network\ADMIN
其他版本的可在oracle目录下搜索tnsname.ora文件名进行修改。
ora =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
其中ora为本地实例名,xxx.xxx.xxx.xxx为远程IP地址,1521为端口号,orcl为远程数据库实例名,按照对方提供的内容进行修改即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)