本文主要是介绍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库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!