SQL Server 2008连接Oracle操作步骤详细记录
SQL Server Management Studio Express(简写SSMS)
SQL Server配置管理器:SQL Server Configuration Manager(简写SSCM)
一、 开启SQL Server 2008远程连接---如果已经开启,则可以跳过
1. 打开SSMS,用Windows身份连接数据库后,右键点击数据库引擎,选择“属性”安装sql server数据库没到
2. 左侧选择“安全性”,选中右侧的“SQL Server和Windows身份验证模式”以启用混合登录模式
3. 左侧选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”
4. 打开SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行
5. 选中左侧“SQL Server网络配置”下的“MSSQLSERVER的协议”,右侧的TCP/IP默认是“Disabled”,双击或右键点击选“属性”,在“协议”选项卡中将其修改为“Enabled”,在“IP Address”选项卡,设置端口“1433”
6. 选中左侧“SQL Native Client 10.0配置”下的“客户端协议”,将“TCP/IP”也修改为“Enabled”
7. 重新启动SQL Server 2008
8. 此时应该可以使用了,但还是要确认一下防火墙。将(C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\)添加到允许的列表中
二、 安装Oracle客户端软件
可以去Oracle下载,比如“10201_client_win32”
安装成功后,在Oracle客户端安装目录下的/network/a配置所要连接的服务器的相关信息,比如:
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11.90)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
如果admin目录下没有“a”,新建一个文本文件,改名为“a”
三、 添加Windows的ODBC数据源
1. 开始->管理工具->数据源(ODBC)
有些“开始”菜单中没有放“管理工具”连接,则可以先到“控制面板”中,然后选择“性能和维护”,就可以到“管理工具”了
2. 在“用户DSN”选项卡或者“系统DSN”选项卡下,点击“添加”,选择“Microsoft ODBC for Oracle”后点击“完成”
3. 填写相关信息
数据源名称、服务器名称与“a”中配置的一样,其他两项可以忽略
填好后,点击“确定”
四、 在SSMS中创建链接服务器
1. 在SSMS中,展开已经连接上的某数据库引擎,依次选择服务器对象->链接服务器,在“链接服务器”上点右键,选择“新建链接服务器”
2. 在“常规”选项卡上按照如下填写:
“链接服务器”,随便取个名字
“访问接口”和“产品名称”如上图所示,不要做任何改变,包括大小写
“数据源”与“a”中配置的一样,也即与“添加Windows的ODBC数据源”步骤中填写的一样
“访问接口字符串”,按照图上的格式来填写,或者“ID=username;Password=userpasswd”
也行,这里的username和userpasswd为登录所要连接的Oracle数据库所使用的用户名和密码;这里一定要填写,虽然在“安全性”选项卡中也会填写
3. 切换到“安全性”选项卡,做如下配置
填写用户名和密码,与上一步所填的用户名和密码一致
点击“确定”,完成
4. 查看Oracle中的数据
此时,在“链接服务器”下面,会出现刚刚创建的链接服务器,展开,可以看到所有的表和视图,但是只能看到表名,不能查看字段
要查询可以右键点击某表,选择:编写脚本为->Select 到->新查询编辑器窗口
SQL的写法有两种
a) 使用T-SQL语法:
       SELECT * FROM test..username.表名 
      注意:在这种方式下取数,如果在oracle中声明表的时候表明用了引号,此处的表明必须和oracle中一致,否则全部使用大写,不然会提示不到表。(此处浪费时间若干。。。)
b) 使用PLSQL语法:
  SELECT * FROM openquery(test,'SELECT * FROM test.username.表名')
         c)第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度相当;     
        d)如果需要访问的column中使用没有精度的数据类型,这两种查询方式都可能会报错,这是ORACLEBUG,无法修正,只能通过查询语句的特殊处理规避这一问题:
       e)在sql server 中有 'msdaora' 和'OraOLEDB.Oracle' 访问接口,右键属性更改下访
问接口选项,将“仅零级”前面的√去掉。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。