Oracle数据库连接并访问Microsoft SQL Server数据库


说明:
 1.实际开发中,Oracle数据库与SQLServer数据库之间可能需要相互进行访问,方便业务数据抽取,编写视图及表等操作。
 2.SQLServer访问Oracle数据库配置相对较为简单,但是Oracle数据库访问SQLServer数据库相对来讲较为复杂,需要安装相关软件以及配置相关文件。本案例使用Oracle官网提供的gateways来演示操作。

注意:笔者操作系统环境为RHEL9,数据库为Oracle19C.案例中连接的SQLServer数据部署在Windows系统中。本案例同样适用于Oralce连接其他类型数据库,并且同操作系统关系不大,Windows系统中大同小异!


操作步骤:
1.下载gateways
在这里插入图片描述

2.上传gateways并解压

3.安装(注意:为了防止安装乱码,安装报错,需要将系统语言临时修改,临时修改RHEL系统版本为9.0`

export CV_ASSUME_DISTID=RHEL8.0
export LANG=en_US

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:上图中SQLServer数据库地址是必填的,其他三项可以暂时不用填写,之后可以修改相应配置文件后生效。
在这里插入图片描述
在这里插入图片描述
4.查看(配置)initdg4msql.ora文件(因为部署的时候已经配置过了,所以initdg4msql.ora文件中不需要重复配置,如果部署的时候只填写了SQLServer服务器地址,则需要按照以下格式书写

# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Microsoft SQL Server

#
# HS init parameters
#
HS_FDS_CONNECT_INFO=[192.168.227.134]:1433//UFDATA_999_2023
# alternate connect format is hostname/serverinstance/databasename
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

5.配置Oracle中的listener.ora文件(可以按如下格式书写,也可以将/u01/app/oracle/product/19.3.0/dbhome_1/dg4msql/admin/listener.ora.sample文件中的内容复制到Oracle的listener.ora文件中
在这里插入图片描述

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = orcl)
    )
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
         (PROGRAM=dg4msql)
      )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = Java)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

6.配置Oracle中的tnsnames.ora文件(可以按如下格式书写,也可以将/u01/app/oracle/product/19.3.0/dbhome_1/dg4msql/admin/tnsnames.ora.sample文件中的内容复制到Oracle的tnsnames.ora文件中
注意:该配置文件中必须填写Oracle服务器计算机名!
在这里插入图片描述

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = Java)(PORT = 1521))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Java)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )


dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=Java)(PORT=1521))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  )

7.重启监听
在这里插入图片描述
7.创建数据库连接

# dg4msql是在Oracle服务器上配置的ODBC数据源名称。
# sa和password是用于连接到SQL Server的凭据.
# gl_accvouch是SQL Server上访问的表的名称

CREATE DATABASE LINK hrpsv665
CONNECT TO "sa" IDENTIFIED BY "password"
USING 'dg4msql';

# 查询示例
SELECT * FROM gl_accvouch@hrpsv665;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意:查询语句中如果想要过滤字段,无论是按特定字段查询还是条件查询中的字段,必须要加双引号,否则提示字段无效!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐