sql server 中访问oracle

转载 2007年09月14日 12:50:00

1.使用连接服务器
图形界面:打开SQLSERVER的企业管理器,展开相应的DATABASE,在安全性下就有连结服务器的项目.点击右键即可添加
注意,要有管理员的权限才行
操作之前,你的电脑必须先设定好ORACLE的CLIENT,能用TNSPING通你的TNS.

企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:Microsoft OLE DB Provider for Oracle; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下文进行,并录入oracle的数据库用户名和密码—》服务器选项标签页可默认—》确定。


命令行下:
添加连结服务器sp_addlinkedserver 'MyLinkServer','ProductName,'MSDAORA','MIX01'
参数分别是 连结服务器名称(必须)   产品名称   连接类型(必须)      资料来源(必须,而且是TNS的名称) 
光添加还是不够的,还要设置登入ORACLE的用户名和密码
1.如果SQL里面有用户帐号和密码与ORACLE里面一样,这里假如是SysLogin,则用
sp_addlinkedsrvlogin 'MyLinkServer',true,'SysLogin'
2.Windows 2000的Administrator帐号将对应到Oracle的scott使用者帐号,其密码为tiger: 
sp_addlinkedsrvlogin 'MyLinkServer',false,'W2000AS/Administrator', 'scott', 'tiger'
3.让所有SQL Server的登入帐号都以scott的身分,密码为tiger登入Oracle Server: 
sp_addlinkedsrvlogin 'MyLinkServer', false, NULL, 'scott', 'tiger'

这样的话,SQLSERVER 就与 ORACLE连结好了,如何使用呢?
假如已连结到ORACLE里面用户为IQCM资料表为GRADE
连结的表格式为: [连接服务器名]..[ORACLE用户].[表名]。
1.查询:SELECT * FROM MyLinkServer..IQCM.GRADE
2.插入:INSERT MyLinkServer..IQCM.GRADE (deptno,dname,loc) values (2,NULL,NULL)
插入需要注意,不需要包含INTO关键词,要传递实际的字段值,而非使用DEAULT关键词
3.更新:UPDATE MyLinkServer..IQCM.GRADE set deptno = 3 WHERE deptno = 2
这个没特殊情况

2.使用OPENROWSET连接

不同类型或服务器间数据库的访问还可以用OPENROWSET
假如我们在电脑上已经设定好ORACLE的设置,且有个MIX01的TNS在侦听,
MIX01上用个用户为IQCM.密码也为iqcm,且则有GRADE,则写法为:
select * from openrowset('MSDAORA','MIX01';'IQCM';'iqcm',' select * from GRADE')
这时有可能会报个错,大致意思是Ad Hoc 对MSDAORA访问被拒绝,
这个错误需要修改注册表里的PROVIDER的键值,具体方法是,开始运行REGEDIT,展开HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/Providers/,选中MSDAORA,新增一个键值,名称为DisallowAdhocAccess ,类型为DWORD,值为0,也就是启用AD HOC Access MSDAORA.
此注册表下还有其它PROVIDER,也可做相应更改



注意事项

在您有效地设定连结服务器之前,您必须了解Oracle与SQL Server之间资料型态的差异。如果您将历史资料同时存放在Oracle与SQL Server,则需注意Oracle之date资料型态可存放至纪元前4712年1月1号,但SQL Server的datetime资料型态所存放的资料是从公元1753年1月1号开始。除此之外,Oracle的date资料型态可存放至0.01秒,而SQL Server之datetime资料型态则可存放至0.001秒。如果想得到更多有关SQL Server datetime资料型态的相关信息,请参阅Kalen Delaney的著作,Inside SQL Server。如果您想获取更多有关Oracle资料型态的相关资料,请到http://technet.oracle.com。您可以在该网站免费注册后获取Oracle之文件资料。

 某些时候您可能需要从多个数据库查询资料,甚至是从另外一台数据库服务器!当其它的数据库为Oracle时,这工作将会变得较具挑战性。Microsoft本身并不打算针对Oracle数据库使用者提供这类顾客服务,而Oracle也不会为SQL Server使用者提供支持。然而,连结服务器却可以方便您从SQL Server存取Oracle数据库的资料。现在您已经了解如何组态并使用Oracle连结服务器,您可以身处于较自在舒服的SQL Server环境,而实时地存取Oracle数据库! 

SQL Server 2008连接Oracle操作步骤详细记录

SQL Server Management Studio Express(简写SSMS) SQL Server配置管理器:SQL Server Configuration Manager(简写SSC...
  • Mevin
  • Mevin
  • 2012年12月07日 09:25
  • 24787

SQL SERVER 20000访问ORACLE数据库服务器的几种方法

在SQL SERVER 20000中访问ORACLE数据库服务器的几种方法 1.通过行集函数opendatasource select *  from opendatasource('MSDAOR...
  • tianhaimo
  • tianhaimo
  • 2013年12月12日 15:46
  • 902

sql server中使用链接服务器访问oracle数据库

一、 安装配置oracle客户端要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。Orcale有两种形式的客户端:l         完整的客户端包括访问服务器端数据库的基本Or...
  • tongdoudpj
  • tongdoudpj
  • 2007年09月04日 12:50
  • 2994

如何从SQLServer到Oracle实现服务器连接

以SQL Server 2000为例说明SQL Server到Oracle连接服务器的具体实现过程。 1.要求pc机上安装oralce客户端软件和sqlserver2000软件。 2.客户端的配置tn...
  • great_domino
  • great_domino
  • 2005年03月14日 09:03
  • 1587

SQL SERVER 2005中创建linked servers对象访问oracle数据库

打开SQL SERVER 2005,首先创建Lin
  • hu_shengyang
  • hu_shengyang
  • 2014年05月13日 16:19
  • 2652

oracle 11g建立DBLink访问sql server数据库

1.安装oracle数据库(步骤省略)            (IP:172.29.29.36)安装路径:E:\oracle\product\11.2.0\dbhome_1 2.安装oracle ga...
  • xiaoguo321
  • xiaoguo321
  • 2016年09月09日 11:41
  • 4878

ORACLE 与SQL SERVER SQL语言比较

数据类型比较  类型名称 Oracle ...
  • lee576
  • lee576
  • 2006年10月29日 21:28
  • 3176

sqlserver 连接oracle 配置详解

方法一:   一、 安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。 Orcale有两种形式的客户端: l 完...
  • linghao00
  • linghao00
  • 2011年12月21日 10:29
  • 13304

SQL Server 与ORACLE数据类型转换对应关系

oracle 与 sql server 数据类型对应关系 sql serer 向oracle 转换对应关系
  • shiyu1157758655
  • shiyu1157758655
  • 2017年07月18日 14:02
  • 554

SQL Server2005连接Oracle 11g详细步骤

我们知道SQL Server和Oracle其实很多原理都类似.特别是一些常用的SQL语句都是按照标准来.所以它们也可以有一定的互操作性的.这里讲一下,怎么配置让SQL Server连接一个Oracle...
  • kevin24s
  • kevin24s
  • 2016年06月21日 18:11
  • 184
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql server 中访问oracle
举报原因:
原因补充:

(最多只允许输入30个字)