golang 里面使用oracle驱动包访问oracle DB

不高兴和没头脑 · · 6410 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1.首先在github上面下载包文件
https://github.com/tgulacsi/goracle


2.设置的编译环境
不设置编译环境,不然go build 会出现:
# github.com/tgulacsi/goracle/oracle
src/github.com/tgulacsi/goracle/oracle/connection.go:23:17: error: oci.h: No such file or directory
src/github.com/tgulacsi/goracle/oracle/connection.go:25:16: error: xa.h: No such file or directory

他给出的编译环境脚本,但是看起来比较复杂,其实就两句话,设置好2个cgo的flag就可以了。
export CGO_CFLAGS=-I/opt/oracle/product/OraHome/rdbms/public
export CGO_LDFLAGS=-L/opt/oracle/product/OraHome/lib


3.运行你的程序:

运行的时候还是要报错:
$ goprom xxxx xxxxx
goprom : error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory

这个时候看oracle用户的env,把动态库的变量加进去:
LD_LIBRARY_PATH=/opt/oracle/product/OraHome/lib:/lib:/usr/lib:/usr/local/lib

4.连接数据库.
但是运行时候连接oracle是时候会报错:
I1225 23:23:06 11474 runMySQLsql.go:74] Connect using:oraadm/passw0rd@gooradb :@Unable to acquire Oracle environment handle -1073741818: other

切换到oracle运行就可以了。
 
但是把oracle用户的环境变量都加入到你的用户当中还是不行。
吐槽一下,我怎么觉得oracle的安装配置比db2难拿。


有疑问加站长微信联系(非本文作者)

本文来自:新浪博客

感谢作者:不高兴和没头脑

查看原文:golang 里面使用oracle驱动包访问oracle DB

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6410 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传