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

首先看github 包 那么这里记录下遇到的问题

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.

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

/
执行成功,完美撒花

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 协议》,转载必须注明作者和本文链接