2008访问Oracle-透过SQL-Server-10g的配置方法 (2008访问日本)

教程大全 2025-07-15 22:48:13 浏览

之前写过一篇关于SQL Server 访问MySQL数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考。

准备工作

事先在需要访问Oracle 数据库的主机上完成以下工作:

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

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

3. 配置Oracle 客户端tnsnames.ora 文件,其中需要注意文件中的数据库别名“ORADB”,该名称在下文创建Linked Server 时将会使用到。

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

创建Linked Server

打开SQL Server Management Studio 进入Server Objects 列表,右键Linked Servers,点击“New Linked Server…”

在General 界面中填写下面几项内容:

Linked server: 填写Linked Server 名称

Provider:选择Microsoft OLE DB Provider for Oracle

Server

Product name:填写Oracle

Data source:填写上面提到的数据库别名ORADB

点击Security ,点选“Be made using this security context”,假设Oracle 数据库有一个名称为admin 的用户ID,在“Remote login”中输入访问帐号,点击“OK”结束创建。

完成后Linked Servers 中会看到刚创建的Oracle 数据库链接。

访问Oracle

接下来就可以在SQL Server 端访问Oracle 数据库了,查询语法如下:

结合上面的实例,假如要查询admin 用户下jobs 表的内容,则相应SQL 语句应为:

使用上述方法进行数据查询时,若Oracle 表有NUMBER 列时会出现转化错误,这时可以将NUMBER 类型转化为字符串(也有将该列属性修改成NUMBER(10),为NUMBER 列设定好位数)。考虑到View 查询等因素个人感觉还是转为字符串的方式较为通用。

当然如果查询的列过多,每个NUMBER 列都转为VARCHAR 的话工作量也的确不小,这时***的方法就是使用OpenQUERY 函数:

按照OPENQUERY 的语法上面SQL 语句应变为:

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

原文标题:通过SQL Server 2008 访问Oracle 10g

链接:

【编辑推荐】


怎么配置SQL Server 2008服务器

一、数据库引擎没有启动有两种启动方式:(1)开始->程序->Microsoft SQL Server 2008->SQL Server 2008外围应用配置器,在打开的界面单击服务的连接的外围应用配置器,在打开的界面中找到Database Engine,单击服务,在右侧查看是否已启动,如果没有启动可单击启动,并确保启动类型为自动,不要为手动,否则下次开机时又要手动启动;(2)可打开:开始->程序->Microsoft SQL Server 2008->配置工具->SQL Server Configuration Manager,选中SQL Server 2008服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的启动服务按钮把服务状态改为启动;使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看SQL Server 2008配置管理器中的SQL Server 2008网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了。二、进行远程连接时,是否已允许远程连接 Server 2008 在默认情况下仅限本地连接.我们可以手动启用远程连接.在上面第一种方式中,找到Database Engine,单击远程连接,在右侧将仅限本地连接(L)改为本地连接和远程连接(R),并选中同时使用TCP/IP和named pipes(B).三、如果是远程连接,则还要查看连接数据库的语句是否正确,登录账户是否正确,密码是否正确等.

oracle 10g 的集群怎么配置?

安装10g集群软件出现错误 怎么解决?在最后一步验证时出现错误提示.在图形化界面不能通过,直接执行脚本,也不行.请问是什么问题?有影响吗?我是在单机上安装.以下是错误信息:[yangwenchao@yangwenchao ~]$ /u02/app/oracle/product/10.2.0/crs/bin/racgons add_ config yangwenchao:6200[yangwenchao@yangwenchao ~]$ /u02/app/oracle/product/10.2.0/crs/bin/oifcfg setif -global eth0/192.168.7.0:cluster_interconnect eth1/192.168.6.0ublicPRIF-12: failed to initialize cluster support services[yangwenchao@yangwenchao ~]$ /u02/app/oracle/product/10.2.0/crs/bin/cluvfy stage -post crsinst -n yangwenchao执行 群集服务设置 的后期检查正在检查节点的可访问性...节点 yangwenchao 的节点可访问性检查已通过。 正在检查等同用户...用户 yangwenchao 的等同用户检查已通过。 正在检查集群管理器完整性...正在检查 CSS 守护程序 daemon 的 守护程序状态 检查已通过。 集群管理器完整性检查已通过。 正在检查集群完整性...集群完整性检查失败。 此检查未在以下节点上运行:yangwenchao正在检查 OCR 完整性...正在检查是否缺少非集群配置...所有节点都没有非集群的, 仅限本地的配置。 ERROR:无法从任一节点获取 OCR 完整性详细资料。 OCR 完整性检查失败。 正在检查 CRS 完整性...正在检查守护程序的活动性 daemon 的活动性检查失败。 在以下节点上检查失败:yangwenchao正在检查守护程序的活动性 daemon 的活动性检查已通过。 正在检查守护程序的活动性 daemon 的活动性检查失败。 在以下节点上检查失败:yangwenchaoCRS 完整性检查失败。 在所有节点上 群集服务设置 的后期检查失败。 已经装过N次了,都是这个问题。 而且按说明,在安装最后应该提示运行两个脚本,但我这里只有一个提示,就是,另外一个没有。 而且运行脚本后,也没有按安装说明提示显示配置过程,一串警告过后(无非是root没有相应目录权限一类),提示CRS已经运行,等等。 但是检查就是通不过。 好像曾经有一次是正常显示了两个脚本,并且运行脚本后会显示配置过程。 但什么原因就不知道了。 和卸载不干净有关系吗?执行后出现如下提示,好像并没有配置CRS网络 :WARNING: directory /opt/oracle/product is not owned by rootWARNING: directory /opt/oracle is not owned by rootChecking to see if Oracle CRS stack is already configured

如何手动启动Oracle服务

由于Oracle10g占用很大的系统资源,如果平时不用,一直处于启动状态,对系统资源极大浪费。 所以,我们可以通过“管理工具”中的“服务”将所有Oracle10g的服务改为手动,当需要使用oracle时通过批处理文件来启动服务即可或者直接在“服务”中一个个启动也可。 (1)Oracle的相关服务 OracleDBConsoleorcloem 控制台的服务进程 网页访问OracleJobSchedulerORCL定时器的服务进程启动会占很大内存默认为禁止OracleOraDb10g_home1iSQL*Plus isql*plus的服务进程OracleOraDb10g_home1TNSlistener 监听器的服务进程任何客户端连接都需要用到默认端口:1521OracleServiceORCL数据库服务进程(2)服务设置 我的电脑——>右击,管理——>服务和应用程序——>服务,将所有服务都设置为手动。 (3)建立批处理文件在D盘建立目录bat,用于存放所有的批处理文件建立两个文件D:\bat\和D:\bat\ @echo offnet start OracleOraDb10g_home1TNSListenernet start OracleServiceORCLnet start OracleDBConsoleorcl注意:@echo off是关掉回显,以后的命令不显示出来。 不显示后续命令行及当前命令行 或者@title ORACLE:STARTING...@NET START OracleOraDb10g_home1iSQL*Plus@NET START OracleOraDb10g_home1TNSListener@NET START OracleServiceORCL@TITLE @echo off net stop OracleDBConsoleorclnet stop OracleServiceORCLnet stop OracleOraDb10g_home1TNSListener或者 @TITLE ORACLE:STOPPING...@NET STOP OracleOraDb10g_home1iSQL*Plus@NET STOP OracleOraDb10g_home1TNSListener@NET STOP OracleServiceORCL@TITLE ORACLE:STOPPED.@PAUSE(4)启动方法 A.保存之后,便可以直接通过双击文件,即可启动或者关闭服务 B.设置环境变量在环境变量中的系统变量中,在PATH后面添加D:\bat不要忘记用分号; 和前面的环境变量隔开,然后直接在开始菜单中的运行中输入startoracle或者stoporacle(文件名)即可执行相应的文件.

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐