golang 连接oracle 11g数据库-2021完美解决方案-遇到的坑与如何解决-No package 'oci8' found-没有oci.h

golang 连接oracle 11g数据库-2021完美解决方案-遇到的坑与如何解决-No package 'oci8' found-没有oci.h

首先看github 包

github.com/wendal/go-oci8

那么这里记录下遇到的问题

1. go get 执行报错

执行 go get github.com/Kylelkh/go-oci8

如图:

Go
这里也可以看到 我执行了,很多次…

解决: 不需要解决,就是报错的.

没关系,代码会下载下来
在你的 gopath 下的 src 下的文件夹里.

如图:

Go

2. 继续 修改oci8.pc文件

注意 这github 注释标题不太清楚.
下载好,弄好,需要修改 文件的 目录信息的

golang 连接oracle 11g数据库-遇到的坑与如何解决-No package 'oci8' found

自行根据自己情况修改.

不修改直接执行,就报错
因为你盘符对不上,你的安装位置对不上.

错误会提示如下:

# github.com/Kylelkh/go-oci8
F:\work\go\src\src\github.com\Kylelkh\go-oci8\oci8.go:4:10: fatal error: oci.h: No such file or directory
 #include <oci.h>
          ^~~~~~~
compilation terminated.

golang 连接oracle 11g数据库-遇到的坑与如何解决-No package 'oci8' found

发布一下改完之后 与 改之前的对比

改完之后

# Package Information for pkg-config

prefix=F:/work/go/instantclient_19_11
exec_prefix=F:/work/go/instantclient_19_11
libdir=${exec_prefix}
includedir=${prefix}/sdk/include/

Name: OCI
Description: Oracle database engine
Version: 11.2
Libs: -L${libdir} -loci
Libs.private: 
Cflags: -I${includedir}

改之前的原版

# Package Information for pkg-config

prefix=C:/instantclient_11_2
exec_prefix=C:/instantclient_11_2
libdir=${exec_prefix}
includedir=${prefix}/sdk/include/

Name: OCI
Description: Oracle database engine
Version: 11.2
Libs: -L${libdir} -loci
Libs.private: 
Cflags: -I${includedir}

如果执行go get 遇到错误 oci.h

 github.com/Kylelkh/go-oci8
F:\work\go\src\src\github.com\Kylelkh\go-oci8\oci8.go:4:10: fatal error: oci.h: No such file or directory
 #include <oci.h>
          ^~~~~~~
compilation terminated.

则注意,你是不是路径写错了.
这里注意两点

  1. 路径
  2. 反斜杠问题. win中用的是/ 这个斜杠

执行成功,完美撒花

golang 连接oracle 11g数据库-遇到的坑与如何解决-No package 'oci8' found-没有oci.h

整理来自其他同学的笔记

//假设的GOPATH指向C:\gohome
0. 执行 go get github.com/wendal/go-oci8 ,然后肯定是报错了,没关系,代码会下载下来.
1. 首先,你需要安装mingw到C:\mingw
2. 然后,到Oracle官网,下载OCI及其SDK,解压到instantclient_11_2  -- 当前最新版
3. 从我的go-oci8库的windows文件夹,拷贝pkg-config.exe到C:\mingw\bin\,拷贝oci8.pc到C:\mingw\lib\pkg-config
4. 设置环境变量 PATH           ,值为     原有PATH;C:\instantclient_11_2;C:\mingw\bin;
5. 设置环境变量 PKG_CONFIG_PATH,值为     C:\mingw\lib\pkg-config
6. 接下来,就最重要的,就是再执行一次,这次应该能成功的:  go get github.com/wendal/go-oci8
7. 测试一下:
    cd %GOPATH%/src/github.com/wendal/go-oci8/example
    go run oracle.go
    #提醒一句, oracle.go里面的写的密码是system/123456, 实例名XE  
本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 3

可以用这个包github.com/sijms/go-ora

2年前 评论
wangchunbo

@qsmx_xk 等等他稳定再用.....

2年前 评论
wangchunbo

@qsmx_xk go-ora,真香.......

2年前 评论
qsmx_xk 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
557
收藏
1103
排名:64
访问:12.1 万
私信
所有博文
社区赞助商