news 2026/9/19 6:38:43

DM8使用ODBC和OCI接口连接Oracle

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DM8使用ODBC和OCI接口连接Oracle
  • 环境介绍

IP地址:端口

192.168.116.143:5236

192.168.116.149:1521

操作系统

Kylin-Server-V10-SP3-2403-Release-20240426-X86_64

CentOS-7-x86_64-DVD-2009

数据库

dm8_20251021_x86_kylin10_sp3_64

oracle11g

Oracle Instant Client包版本:12.2

Oracle Instant Client包下载地址:Oracle Instant Client Downloads

  • ODBC

执行odbcinst -j查看unixODBC的版本

2.1下载驱动

下载上传并解压得到如下:

2.2配置依赖

cd instantclient_12_2进入目录

ldd libsqora.so.12.1检查依赖

查找缺失驱动,放置/usr/lib64目录下

find / -namelibmql1.so

cp ./libmql1.so /usr/lib64

若仍缺少驱动,通过yum进行下载安装后继续连接

注:重点为红框内驱动

2.3配置ODBC源

2.3.1创建tnsnames.ora文件

tnsnames.ora文件可参考oracle数据库所在服务中的tnsnames.ora文件。

tnsnames.ora文件在与驱动在同一目录下,便于下文参数的设置。

2.3.2 配置$ORACLE_HOME、$TNS_ADMIN和$LD_LIBRARY_PATH

配置TNS_ADMIN系统环境变量

vim /etc/profile

文件最后加上以下语句:

export ORACLE_HOME=/oracleclient/instantclient_12_2/

exportLD_LIBRARY_PATH=/oracleclient/instantclient_12_2/

export TNS_ADMIN=/usr/lib/oracle/12.2/client64

执行source /etc/profile使配置生效。

2.3.3配置odbcinst.ini文件

2.3.4配置odbc.ini文件

2.4验证配置

isql ORA11G SCOTT oracle

重启达梦数据库,加载dm通过dblink查询oracle数据库数据所需的文件。

2.5 创建DBLINK

在DM管理工具或disql中执行以下语句

CREATE OR REPLACE LINK LINKORA1CONNECT 'ODBC' WITH "Oracle用户" IDENTIFIED BY "Oracle用户密码" USING 'DSN名字';

select count(*) from USER_TABLES@LINKORA1;

结果示例如下。

  • OCI

3.1 下载Oracle客户端驱动(Instant Client)

下载上传并解压得到如下:

3.2配置依赖

cd instantclient_12_2进入目录

ldd libclntsh.so.12.1检查依赖

查找缺失驱动,放置/usr/lib64目录下

find / -namelibmql1.so

cp ./libmql1.so /usr/lib64

若仍缺少驱动,通过yum进行下载安装后继续连接

复制所有.so文件到DM安装目录的bin目录下

cp ./instantclient_12_2/*.so* /home/dmdba/dmdbms/bin

给libclntsh.so.12.1文件改名成libclntsh.so

mv /home/dmdba/dmdbms/bin/libclntsh.so.12.1 /home/dmdba/dmdbms/bin/libclntsh.so

重启达梦数据库,加载dm通过dblink查询oracle数据库数据所需的文件。

3.3配置$ORACLE_HOME

vim /etc/profile进入环境变量文件

export ORACLE_HOME=/oracleclient/instantclient_12_2/

source /etc/profile使环境变量生效

3.4创建DBLINK

在DM管理工具或disql中执行以下语句

CREATE OR REPLACE LINK LINKORA CONNECT 'ORACLE' WITH "Oracle用户" IDENTIFIED BY "Oracle用户密码" USING 'Oracle服务器ip地址:1521/Oracle服务名';

select * from ALL_DB_LINKS;

结果如下。

select count(*) from USER_TABLES@LINKORA;

结果示例如下。

  • 总结

推荐使用OCI接口来创建DBLINK连接ORACLE,相对来说,使用OCI接口来创建DBLINK连接ORACLE更加简单,步骤更少,而且可以避免由于版本不匹配导致的连接失败问题。

使用ODBC接口创建DBLINK对比使用OCI接口,多了ODBC配置文件的创建、tnsname.ora文件的创建及TNS_NAME参数和LD_LIBRARY_PATH参数的设置,步骤多了,出错的几率就更高了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 19:52:39

Artix-7开发者首选vivado安装教程2018操作指南

Artix-7开发者的起点:如何稳扎稳打装好Vivado 2018 你是不是也经历过这样的场景?刚拿到一块Artix-7开发板,满心欢喜地打开电脑准备“点灯”,结果第一步——安装Vivado就卡住了。下载花了几个小时,安装到一半报错&…

作者头像 李华
网站建设 2026/9/15 19:50:55

自动化测试框架搭建:确保GLM-TTS每次更新稳定性

自动化测试框架搭建:确保GLM-TTS每次更新稳定性 在AI语音合成系统加速落地的今天,一个看似微小的模型更新,可能带来音色偏移、多音字误读甚至推理崩溃等连锁反应。对于像GLM-TTS这样集成了零样本克隆、情感迁移和流式输出的复杂系统而言&…

作者头像 李华
网站建设 2026/9/15 19:52:39

更换参考音频策略:当当前音色不满意时的应对方案

更换参考音频策略:当当前音色不满意时的应对方案 在虚拟主播直播带货、有声书自动生成、智能客服语音交互等场景中,用户对合成语音“像不像”“自然不自然”的要求越来越高。尤其是在使用 GLM-TTS 这类基于大模型的零样本语音克隆系统时,一段…

作者头像 李华
网站建设 2026/9/14 4:26:58

有声书自动化生产:结合大模型写作与GLM-TTS语音输出

有声书自动化生产:结合大模型写作与GLM-TTS语音输出 在内容消费加速向“听觉化”迁移的今天,喜马拉雅、Audible 和各类知识付费平台上的有声书需求持续攀升。然而,传统制作模式仍严重依赖专业配音演员——成本高、周期长、难以规模化。一位资…

作者头像 李华
网站建设 2026/9/17 7:22:53

工业协议解析入门:结合qserialport通俗解释

工业协议解析实战:用 QSerialPort 玩转 Modbus RTU你有没有遇到过这样的场景?设备连上了,串口也打开了,QSerialPort能收到一串串十六进制数据,但看着01 03 00 00 00 0A C4 0B这样的字节流,却不知道哪是地址…

作者头像 李华