Golang连接Oracle 需要安装Oracle Full Client或Instant Client
#选择Instant Client for Linux x86-64下载包如下:
instantclient-basic-linux.x64-21.1.0.0.0.zip
instantclient-sqlplus-linux.x64-21.1.0.0.0.zip
instantclient-sdk-linux.x64-21.1.0.0.0.zip
#都解压到 instantclient_21_1 这个目录,直接解压会解压到instantclient_21_1目录
unzip instantclient-basic-linux.x64-21.1.0.0.0.zip
unzip instantclient-sdk-linux.x64-21.1.0.0.0.zip
unzip instantclient-sqlplus-linux.x64-21.1.0.0.0.zip
#打印instantclient_21_1目录的路径
pwd
/home/oracle/instantclient_21_1
安装pkg-config
CentOS自带了pkg-config,这里不在安装
#打印pkg-config版本
pkg-config --version
创建配置文件oci8.pc
vim /home/oracle/oci8.pc oci8.pc文件内容如下:
prefix=/home/oracle/instantclient_21_1
libdir=${prefix}
includedir=${prefix}/sdk/include/
glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums
Name: oci8
Description: oci8 library
Libs:-L${libdir}-lclntsh
Cflags:-I${includedir}
Version:21.1
配置环境变量
vim /etc/profile
在最后添加如下环境变量
# Oracle的OCI套件
export LD_LIBRARY_PATH=/home/oracle/instantclient_21_1
# oci8.pc文件所在路径
export PKG_CONFIG_PATH=/home/oracle
使配置生效
source /etc/profile
运行Golang连接Oracle报错一:
# github.com/mattn/go-oci8
In file included from../github.com/mattn/go-oci8/c_helpers.go:3:0:
./oci8.go.h:1:17: fatal error: oci.h:No such file or directory
#include<oci.h>
^
compilation terminated.
是因为配置的环境变量,oci8.pc文件所在路径不对,找不到oci8.pc文件导致的 注意这个路径配置对 export PKGCONFIGPATH=/home/oracle
运行Golang连接Oracle报错二:
dyld:Librarynot loaded:@rpath/libclntsh.dylib.19.1
Referencedfrom:/var/folders/_f/n3km_s7j6_9f8qzpkf9w395h0000gn/T/go-build114883360/b001/exe/oracleoci8
Reason: image not found
添加软链接,解决报错
ln -s /home/oracle/instantclient_21_1/libclntsh.so.21.1/usr/lib/libclntsh.so
ln -s /home/oracle/instantclient_21_1/libocci.so.21.1/usr/lib/libocci.so
ln -s /home/oracle/instantclient_21_1/libociei.so /usr/lib/libociei.so
ln -s /home/oracle/instantclient_21_1/libnnz21.so /usr/lib/libnnz12.so
<audio controls="controls" style="display: none;"></audio>
相关推荐
在使用Golang的ODBC驱动前,确保你的系统已经安装了适当的ODBC驱动管理器,例如Windows上的`odbcad32.exe`,以及对应的数据库驱动。安装完成后,你可以通过创建ODBC数据源(DSN,Data Source Name)来配置连接参数,...
Oracle Instant Client是Oracle公司提供的一款轻量级的客户端软件,用于在不安装完整Oracle数据库的情况下,支持应用程序连接到Oracle数据库。这个压缩包"instantclient-sdk-linux.x64-19.6.0.0.0dbru.zip"包含了在...
Oracle Instant Client是Oracle数据库的一个轻量级客户端组件,允许应用程序在不安装完整Oracle数据库的情况下连接到Oracle服务器。它包含了执行SQL查询、处理结果集以及进行数据操作所需的动态链接库。 描述中提到...
"golang中连接oracle的必须使用"强调了这个库对于Golang开发者的重要性,因为Go语言的标准库不包含内置的Oracle数据库驱动,所以需要依赖这样的外部库来实现连接。"无需再次安装,版本21-6"意味着这是Oracle客户端的...
数据库管理系统 (DBMS):如Oracle、MySQL、SQL Server,用于创建、维护和查询结构化数据。 企业资源计划 (ERP):整合企业的财务、供应链、人力资源、生产等多方面管理功能的综合性信息系统。 客户关系管理 (CRM)...
数据库管理系统 (DBMS):如Oracle、MySQL、SQL Server,用于创建、维护和查询结构化数据。 企业资源计划 (ERP):整合企业的财务、供应链、人力资源、生产等多方面管理功能的综合性信息系统。 客户关系管理 (CRM)...
数据库管理系统 (DBMS):如Oracle、MySQL、SQL Server,用于创建、维护和查询结构化数据。 企业资源计划 (ERP):整合企业的财务、供应链、人力资源、生产等多方面管理功能的综合性信息系统。 客户关系管理 (CRM)...
- 熟悉主流关系型数据库系统如MySQL、Oracle、OceanBase的架构和运维。 - 熟练使用k8s、Docker、Ansible、Git、Prometheus、Falcon等工具之一或多者。 **岗位亮点:** - 分布式关系型数据库系统Blade是基础架构...