Window环境下安装mattn/go-oci8库

2023-11-03 17:31
文章标签 go 安装 环境 window mattn oci8

本文主要是介绍Window环境下安装mattn/go-oci8库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

  • mattn/go-oci8库是在go语言中,连接oracle数据库的驱动程序,之前在另外一个篇 mattn / go-oci8 库安装 (用于go连接oracle数据库) 介绍了在linux环境如何编译和安装,这次我们在Windows环境下进行安装。
环境准备
  • GCC编译环境
  • PKG-CONFIG 程序 百度网盘提取码: r4fr
  • Oracle InstanceClient 这里我用的是截止目前最新的19.6版本
  • Oracle SDK 这里我用的是截止目前最新的19.6版本
安装配置
  • GCC编译环境
    解压下载下来的mingw-v64-v7.0.0.zip文件到文件系统,我这里解压到了了C盘
    添加mingw64到环境变量PATH
    在这里插入图片描述
  • 添加pkg-config程序
    将解压后的PKG-CONFIG.zip的内容提取到GCC的bin目录下,包括其中的libglib-2.0-0.dll文件
  • 配置Oracle InstanceClient
    解压下载下来的instantclient-basic-windows.x64-19.6.0.0.0dbru.zip和instantclient-sdk-windows.x64-19.6.0.0.0dbru.zip文件到同一文件系统的目录中去,我这里解压到了D盘根目录下D:\instantclient_19_6,添加该路径到环境变量PATH
    在这里插入图片描述
  • 配置oci.pc8文件
prefix=/devel/target/XXXXXXXXXXXXXXXXXXXXXXXXXX
exec_prefix=${prefix}
libdir=D:/instantclient_19_6/sdk/lib/msvc
includedir=D:/instantclient_19_6/sdk/includeglib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenumsName: oci8
Description: oci8 library
Libs: -L${libdir} -loci
Cflags: -I${includedir}
Version: 19.6

其中主要配置libdir以及includedir,指向oracleInstanceClient客户端的lib目录以及sdk目录

  • 配置PKG_CONFIG_PATH环境变量指向oci.pc8文件
  • 执行go get github.com/mattn/go-oci8 进行在线安装

测试代码

package main
import ("database/sql""log""fmt"_ "github.com/mattn/go-oci8"
)func main(){sqlconn := "demo/demo@172.17.0.3:1521/orcl"db, err := sql.Open("oci8", sqlconn)if err != nil {log.Fatalln(err)}defer db.Close()sql := "select sysdate from dual"rows, err := db.Query(sql)if err != nil {log.Fatalln(err)}defer rows.Close()for rows.Next() {var re stringrows.Scan(&re)fmt.Println(re)}if err = rows.Err(); err != nil {log.Fatalln(err)}
}

这篇关于Window环境下安装mattn/go-oci8库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/339791

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go中select多路复用的实现示例

《Go中select多路复用的实现示例》Go的select用于多通道通信,实现多路复用,支持随机选择、超时控制及非阻塞操作,建议合理使用以避免协程泄漏和死循环,感兴趣的可以了解一下... 目录一、什么是select基本语法:二、select 使用示例示例1:监听多个通道输入三、select的特性四、使用se

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路