news 2026/6/15 14:24:11

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/6/12 12:58:23

React Native搭建环境通俗解释:新手也能懂的配置流程

React Native环境搭建全攻略:从零开始,新手也能跑通第一个App 你是不是也曾经点开React Native官方文档,看到满屏的命令行、SDK路径、JDK版本要求时,瞬间感觉脑袋发大?别担心,这几乎是每个跨平台开发新手都…

作者头像 李华
网站建设 2026/6/11 0:20:35

Slack工作区邀请:为企业客户提供私密沟通协作平台

Slack工作区邀请:为企业客户提供私密沟通协作平台 在AI大模型交付项目中,技术团队与企业客户之间的沟通质量,往往直接决定了项目的推进效率和最终体验。我们常遇到这样的场景:客户通过微信发来一段语音反馈问题,附带一…

作者头像 李华
网站建设 2026/5/31 1:04:35

缓存机制引入:对相同文本+音频组合结果进行加速返回

缓存机制引入:对相同文本音频组合结果进行加速返回 在语音合成系统日益走向生产级部署的今天,一个看似微小却影响深远的问题逐渐浮现:用户反复请求相同的语音内容。无论是调试时不断点击“重新生成”,还是批量任务中重复处理同一句…

作者头像 李华
网站建设 2026/5/22 18:35:01

Node.js中间层设计:连接前端与GLM-TTS Python后端

Node.js中间层设计:连接前端与GLM-TTS Python后端 在智能语音应用日益普及的今天,用户不再满足于机械式的“机器朗读”,而是期待更自然、个性化甚至带有情感色彩的语音输出。以 GLM-TTS 为代表的零样本语音合成技术应运而生——仅凭几秒录音就…

作者头像 李华
网站建设 2026/5/30 13:58:24

今日头条推文:借助算法推荐触达潜在兴趣用户

借助GLM-TTS实现高质量语音合成:从零样本克隆到情感表达的实战解析 在内容创作日益依赖自动化工具的今天,语音合成技术正悄然改变着我们生产音频的方式。无论是有声书、在线课程,还是智能客服与虚拟主播,用户对“自然、个性化、富…

作者头像 李华
网站建设 2026/6/15 14:10:22

为什么选择torch29环境?解析GLM-TTS对PyTorch版本要求

为什么选择torch29环境?解析GLM-TTS对PyTorch版本要求 在当前生成式AI迅猛发展的背景下,文本到语音(TTS)系统正以前所未有的速度渗透进智能助手、有声内容创作乃至虚拟人交互等关键场景。其中,GLM-TTS 凭借其出色的零样…

作者头像 李华