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

SQL Server Management Studio Express(简写SSMS)
SQL Server配置管理器:SQL Server Configuration Manager(简写SSCM)
一、 开启SQL Server 2008远程连接---如果已经开启,则可以跳过
1. 打开SSMS,用Windows身份连接数据库后,右键点击数据库引擎,选择“属性”
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. 此时应该可以使用了,但还是要确认一下防火墙。将SQLServr.exe(C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe)添加到允许的列表中
二、 安装Oracle客户端软件
可以去Oracle官网下载,比如“10201_client_win32”
安装成功后,在Oracle客户端安装目录下的/network/admin/tnsnames.ora配置所要连接的服务器的相关信息,比如:
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11.90)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
如果admin目录下没有“tnsnames.ora”,新建一个文本文件,改名为“tnsnames.ora”
三、 添加Windows的ODBC数据源
1. 开始->管理工具->数据源(ODBC)

有些“开始”菜单中没有放“管理工具”连接,则可以先到“控制面板”中,然后选择“性能和维护”,就可以找到“管理工具”了
2. 在“用户DSN”选项卡或者“系统DSN”选项卡下,点击“添加”,选择“Microsoft ODBC for Oracle”后点击“完成”


3. 填写相关信息


数据源名称、服务器名称与“tnsnames.ora”中配置的一样,其他两项可以忽略
填好后,点击“确定”
四、 在SSMS中创建链接服务器
1. 在SSMS中,展开已经连接上的某数据库引擎,依次选择服务器对象->链接服务器,在“链接服务器”上点右键,选择“新建链接服务器”


2. 在“常规”选项卡上按照如下填写:


“链接服务器”,随便取个名字
“访问接口”和“产品名称”如上图所示,不要做任何改变,包括大小写
“数据源”与“tnsnames.ora”中配置的一样,也即与“添加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' 访问接口,右键属性更改下访问接口选项,将“仅零级”前面的√去掉。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值