宝哥软件园

如何通过SQL Server 2008访问Oracle 10g

编辑:宝哥软件园 来源:互联网 时间:2021-08-07

类型:电子教程大小:8.5M语言:中文评分:8.3标签:现在下载通过SQL Server 2008访问Oracle 10g的准备

在需要访问Oracle数据库的主机上提前完成以下任务:

1.安装SQL Server数据库:SQL Server 2008 R2快报

2.安装Oracle客户端访问程序:Oracle 10g客户端

3.配置Oracle客户端tnsnames.ora文件,并注意文件中的数据库别名“ORADB”,这将在下面创建链接服务器时使用。

ORADB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTIP)(PORT=1521))(CONNECT _ DATA=(SID=DBNAME)))

4.确保主机可以通过SQLPlus访问远程Oracle数据库。

sqlplus

创建链接服务器

打开SQL Server管理工作室,进入服务器对象列表,右键单击链接服务器,然后单击“新建链接服务器.”

new

在常规界面填写以下项目:

链接服务器:填写链接服务器名称

提供程序:为Oracle选择Microsoft ole db提供程序

产品名称:填写甲骨文

数据来源:填写上述数据库别名ORADB

input

单击安全,单击“使用此安全上下文创建”,假设Oracle数据库具有名为admin的用户标识,在“远程登录”中输入访问帐户,然后单击“确定”完成创建。

account

完成后,您将在链接服务器中看到新创建的Oracle数据库链接。

Done

访问甲骨文

然后,您可以在SQL Server端访问Oracle数据库,查询语法如下:

从链接名称中选择*.帐户名称。表名;

结合上面的例子,如果要查询admin用户下jobs表的内容,对应的SQL语句应该是:

从ORASVR中选择*.ADMIN。JOBS

使用上述方法查询数据时,如果Oracle表中有NUMBER列,会出现转换错误。此时,NUMBER类型可以转换为字符串(或者将列属性修改为NUMBER(10),并为NUMBER列设置NUMBER位数)。考虑到View查询等因素,个人感觉变成字符串比较常见。

当然,如果查询中列太多,每个NUMBER列都转换为VARCHAR,工作量确实不小。此时,最好的方法是使用OPENQUERY函数:

从开放查询中选择*(链接名,‘从表名中选择*);

根据OPENQUERY的语法,上面的SQL语句应该是:

从开放查询中选择*;

这样,我们就可以方便地在SQL Server上访问Oracle数据库,并进行相应的数据调整。

更多资讯
游戏推荐
更多+